Go语言技术文章
-
Redis Stream 保留消息时,MAXLEN 适合固定条数窗口,MINID 适合按时间或事件 ID 淘汰。本文比较近似与精确裁剪,并给出复查与消费组判断清单。385 收藏 -
MySQL 的 TIMESTAMP 会按连接时区与 UTC 做转换,DATETIME 则保存字面上的日期时间。本文从瞬时事件、预约时间、连接会话和 2038 年范围几个边界出发,整理跨时区业务的选型和检查方法。384 收藏 -
本文围绕 MySQL ST_Simplify 处理 LineString 的实际任务,说明 max_distance 的距离单位、公差选择、节点变化和 ST_IsValid 有效性检查,并给出安全回写简化几何的 SQL 示例。384 收藏 -
Redis WAIT 用 numreplicas 和毫秒级 timeout 等待当前连接此前写入被副本确认。本文说明返回值判断、超时处理、连接边界,以及它与 AOF 持久化和强一致保证的区别。383 收藏 -
Redis Streams 使用 XREADGROUP 时,空结果不一定代表没有消息。本文从 BLOCK 超时、已确认消息和 XPENDING 消费者状态三条线核对消息是否真正读到,并给出可复查的命令与边界。382 收藏 -
MySQL 复制过滤不是按配置文件书写顺序覆盖,而是先改写库名,再判断库级规则,最后按精确表 do、精确表 ignore、通配表 do、通配表 ignore 的固定顺序命中即退出。本文结合 STATEMENT、ROW 与 DDL 的差异,给出可推演的判断方法。382 收藏 -
Redis LPOS 查找列表元素时,负数 RANK、List 下标和空结果容易混淆。本文用重复通知场景拆解从尾部定位、扫描边界与应用侧验收。381 收藏 -
MySQL ST_SwapXY 交换几何中每对坐标的 X、Y 分量。本文给出点、折线和集合写法,并区分数据交换、轴顺序解析与坐标系变换。381 收藏 -
MySQL 8.4 中,RANGE 和 ROWS 看起来只差一个单词,却会在同分值、时间范围和滚动统计中产生不同结果。通过订单金额累计和 7 天滑动平均两个例子,定位默认窗口边界并给出验收方法。380 收藏 -
Redis Streams 消费者异常退出后,消息会留在 PEL 中。先用 XPENDING 观察归属、空闲时间和投递次数,再用 XAUTOCLAIM 接管超时消息,处理成功后用 XACK 完成闭环。380 收藏 -
MySQL 用 SUM OVER 计算累计值时,如果希望每个月重新开始,关键不是给 SUM 加条件,而是把包含年份的月份键放进 PARTITION BY,并用稳定的时间与主键排序。本文给出可直接改写的 SQL 和排查清单。380 收藏 -
Redis TTL 不按预期过期,通常不是 Redis 忽略了时间,而是过期没有成功写入、后续 SET 覆盖清除了 TTL,或把主动清理误解成精确计时。本文用 TTL、PTTL 和最小命令集逐层定位。380 收藏 -
Redis 键过期后,used_memory、used_memory_rss 和 allocator 内存不一定同时下降。本文从 TTL、过期清理、分配器碎片和 RSS 四个层次判断现象,再给出低风险的处理顺序。380 收藏 -
Redis Functions 会把 Lua 逻辑作为函数库保存。本文用一个订单状态校验函数说明 FUNCTION LOAD、REPLACE、FUNCTION LIST 和 FUNCTION DELETE 的切换边界,给出发布前验收与失败回滚顺序。379 收藏 -
Redis Lua 返回 RESP3 map 时,客户端是否拿到字典取决于脚本内部的 redis.setresp(3) 与连接侧的 HELLO 3 是否分别配置正确。本文拆开两层协议,说明 RESP2 为何会把 map 展平成交替键值数组,并给出客户端解析检查表。379 收藏