Redis技术文章
-
Redis XAUTOCLAIM 的 COUNT 是每轮尝试接管的数量上限,不保证恰好返回相同条数。本文结合 PEL、min-idle-time、start 游标和 COUNT×10 扫描窗口,说明如何控制恢复负载、读取三段返回值并处理 0-0 与已删除消息边界。215 收藏 -
Redis 事务里的 QUEUED、EXECABORT、EXEC 返回数组和 WATCH 空回复分别代表什么?本文把命令入队、执行报错、事务取消与列表/Streams 工作队列拆开说明,帮助你准确定位错误边界。431 收藏 -
Redis 8.0.0 及以上可用 HGETEX 在读取 Hash 字段的同时更新过期时间。本文说明 EX、PX、EXAT、PXAT、PERSIST 和 FIELDS 的组合方式,并用 HTTL 区分字段仍在、无 TTL 与已经过期。357 收藏 -
Redis volatile 只淘汰带 TTL 的键,allkeys 把所有键纳入候选。本文从数据可重建性、TTL 约定和内存压力出发,给出策略选择表、配置示例及业务观测要点。464 收藏 -
Redis 的 EXPIRE 默认会覆盖当前 TTL。只想首次设置过期时间时使用 NX;只处理已经有 TTL 的键使用 XX;只允许缩短或延长时分别使用 LT、GT。若同时覆盖字符串值,还要用 SET 的 KEEPTTL 保留原有 TTL。217 收藏 -
Redis WATCH 事务竞争失败时,正确做法不是盲目重发,而是重新读取最新值后有限重试。本文用 Go go-redis/v9 拆解竞争窗口、TxFailedErr、退避和错误边界。143 收藏 -
Redis Stream 可以挂载多个独立 consumer group。本文用 XGROUP CREATE、XGROUP SETID、XREADGROUP、XINFO 和 XPENDING 说明如何让不同消费组分别从历史位置回放事件,并避开 PEL 混淆。442 收藏 -
MAXLEN 可在写入或独立裁剪时限制 Redis Stream 保留条目数。本文对比精确与近似模式,给出命令示例,并说明 LIMIT、消费组引用及容量规划的适用边界。376 收藏 -
Redis Streams 消费组中的消息如果长时间没有确认,会留在 PEL 里。本文用 XAUTOCLAIM 按最小空闲时间接管消息,讲清游标、COUNT、JUSTID、XACK 和重复投递边界。252 收藏 -
Redis Stream 消费者失联后,使用 XPENDING 找出 PEL 中的超时消息,再用 XCLAIM 转交给新消费者,并根据返回值和业务结果决定何时 XACK。261 收藏 -
Redis Streams 中,XPENDING 可以先看消费者组的待确认总量,再用明细和 IDLE 毫秒过滤找出长期未确认消息。本文拆解 PEL、消费者、空闲时间和投递次数,并说明定位与恢复的边界。159 收藏 -
XACK 只清理指定消费组的待处理记录,不删除流正文。本文给出 Redis Streams 消费与确认示例,说明返回零、重复确认、失败重试及超时认领的处理边界。347 收藏 -
Redis Stream 要让多个 worker 分摊未消费消息,应让它们加入同一个 consumer group,并使用不同的 consumer 名称通过 XREADGROUP 读取;处理成功后用 XACK 清理 PEL,恢复时再读取自己的 pending 历史。158 收藏 -
Redis SINTERCARD 用于只返回多个集合的交集基数,本文说明 numkeys、LIMIT、空集合、缺失键和 WRONGTYPE 边界,并给出适合阈值判断与精确计数的最小写法。393 收藏 -
Redis keyspace notifications 不必接收全部键变更。需要拿到过期键名时使用 Ex 并订阅 __keyevent@0__:expired,需要拿到事件名时使用 Kx 并订阅 __keyspace@0__:*;同时注意 expired 触发延迟、Pub/Sub 断线丢失和 Cluster 节点范围。396 收藏