Redis技术文章
-
Redis 8.10 的 BLMOVEM 可以阻塞等待并批量搬运列表元素,但 COUNT 与 EXACTLY 的唤醒条件完全不同。本文从目标列表间歇性断粮的故障现象出发,拆清 timeout、OBO、BULK、事务与 Lua 场景的边界,并给出修复选择和上线检查清单。122 收藏 -
Redis SCAN 是渐进式遍历,不是一次性分页接口。本文用游标、MATCH、COUNT 和去重集合拆开“漏键”错觉,给出可验收的清理脚本与边界判断。121 收藏 -
用 Redis MODULE LIST 盘点实例加载的扩展模块,核对 name、ver、path 等返回字段,并给出上线前后的风险检查方法。121 收藏 -
Redis 删除大键时,DEL 会同步承担复合值的释放成本,UNLINK 则先摘除键并把内存回收放到后台线程。本文按负载、键大小和监控方式给出选择清单。120 收藏 -
Redis 7.0 引入的 SPUBLISH 和 SSUBSCRIBE 会把消息限制在频道对应的集群分片内,适合降低普通 Pub/Sub 的跨节点扩散。本文从频道哈希、订阅连接和返回值入手,给出一组可复查的消息验收方法。119 收藏 -
Redis 更新值时,SET、SET KEEPTTL、HSET、PERSIST 和 EXPIRE 对已有 TTL 的影响不同。本文用命令对照、事务示例和回归清单区分保留、重置与删除过期时间的边界。116 收藏 -
Redis LMPOP 可以从多个 List 中选择一个非空队列并批量取出元素,但它不是轮询器。本文核对 LEFT、RIGHT、COUNT、空结果和多键顺序,给出多队列消费的安全写法与上线检查点。115 收藏 -
Redis 客户端缓存要避免脏读,重点是正确启用 CLIENT TRACKING 并处理 INVALIDATE 消息。本文比较默认跟踪、OPTIN、OPTOUT、BCAST 与 NOLOOP,说明连接池、跟踪表容量和数据库编号带来的边界。115 收藏 -
用 Redis Lua 脚本把库存校验与扣减放进一次 EVAL,讲清 KEYS、ARGV、返回值和集群键名的使用边界。114 收藏 -
Redis ZDIFFSTORE 会把第一个有序集合中不属于后续集合的成员写入目标键。本文用候选榜与已处理榜说明差集的成员边界、分值保留规则、空结果和集群同槽核验。112 收藏 -
Redis 7.4 及以上可用 HEXPIRE 为 Hash 字段设置独立 TTL,并用 HTTL 或 HPTTL 检查剩余时间;本文同时说明返回值、更新边界和旧版本替代方案。112 收藏 -
BLMOVE 阻塞超时不会移动任何元素,因此不需要回滚。真正需要补偿的是任务已经进入 processing 后业务失败或 worker 崩溃的场景。本文用 ready、processing、ack 和重试边界设计可靠队列。111 收藏 -
Redis Streams 消费者在确认消息前宕机时,消息会留在待确认列表。本文说明如何通过 XAUTOCLAIM 有节制地接管超时消息,并监控重试与清理结果。110 收藏 -
Redis Streams pending 表示消费组已投递但尚未确认的消息。本文用 XPENDING、XINFO 和 XAUTOCLAIM 建立排查与恢复边界。109 收藏 -
Redis 客户端缓存如何在 OPTIN 与 OPTOUT 之间选择?本文从默认跟踪范围、CLIENT CACHING YES、CLIENT UNTRACKING、连接失效和上线检查清单说明两种策略的适用边界。109 收藏