Go语言技术文章
-
数据库 · Redis | 2天前 | Redis · 消息队列 · Stream · 故障恢复 · 消费者组 · redis streams 消息重试 消费者组 XAUTOCLAIM 积压消息 PEL
Redis Streams 消费者组出现积压时,XAUTOCLAIM 可以把超过最小空闲时间的 pending 消息交给健康消费者继续处理。本文用故障接管场景说明 start 游标、COUNT、JUSTID、重试次数和删除幽灵消息的验收边界。148 收藏 -
Redis Hash 字段过期后,整条 Hash 不一定会立刻消失。用 HEXPIRE 设置字段级 TTL,用 HTTL 或 HPTTL 检查精度,再结合 HGET、HLEN 和主动读取判断字段是否已不可见;验收时要区分过期时间写入失败、惰性删除和整 key 生命周期。138 收藏 -
Redis RESP3 不是把 RESP2 换个版本号,而是会改变部分命令的返回类型。本文用 Go 和 go-redis 拆开 HGETALL 的 map/array 差异,给出升级判断、解析边界和灰度验证办法。127 收藏 -
数据库 · Redis | 3星期前 | Redis · 缓存 · 限流 · Redis 8.8 · INCREX · Redis 8.8 INCREX Redis窗口限流 Redis计数器 ENX UBOUND
Redis 8.8 新增 INCREX,把计数、上限和过期时间放进一个原子命令。文章用 redis-cli 演示 60 秒窗口限流,解释 UBOUND、ENX、SATURATE 的差别,并给出旧版本回退方案与检查边界。123 收藏 -
Redis SCAN 是渐进式遍历,不是一次性分页接口。本文用游标、MATCH、COUNT 和去重集合拆开“漏键”错觉,给出可验收的清理脚本与边界判断。121 收藏 -
数据库 · MySQL | 3星期前 | MySQL · 数据库 · SQL · ON DUPLICATE KEY UPDATE · VALUES · 行别名 · MySQL VALUES() 弃用 ON DUPLICATE KEY UPDATE MySQL 行别名 INSERT AS new MySQL upsert INSERT SELECT
MySQL 已将 ON DUPLICATE KEY UPDATE 中用 VALUES() 读取新行字段的写法标记为弃用。本文从库存快照写入场景出发,给出行别名 AS new 的最小改写、INSERT ... SELECT 的不同处理方式,以及上线前应核对的兼容边界。117 收藏 -
Redis Streams 消费者在确认消息前宕机时,消息会留在待确认列表。本文说明如何通过 XAUTOCLAIM 有节制地接管超时消息,并监控重试与清理结果。110 收藏 -
Redis GEOSEARCH 做附近门店查询时,距离相同、门店坐标变化和分页游标都会影响结果稳定性。本文用 GEOSEARCH、WITHDIST 和业务排序键拆解半径分页边界,并给出可重复的校验方法。105 收藏