Redis技术文章
-
Redis Streams 的积压不能只看 XLEN。本文用 XPENDING、XINFO GROUPS 和 XINFO CONSUMERS 区分 pending 与 lag,并给出从现象到根因的排查命令。449 收藏 -
Redis 7 及以上可以把 Lua 逻辑保存为 Function library,再用 FCALL 按名称调用。本文用库存扣减示例说明 FUNCTION LOAD、KEYS/ARGV、原子执行和升级边界。286 收藏 -
Redis Lua 脚本不能依靠多个 return 表达式同时返回多个顶层结果,常用做法是返回一个按位置约定的 Lua 数组表。本文从 EVAL 参数开始,说明状态码、消息和业务值怎样放进同一份数组回复,并处理 nil、布尔值和错误分支。231 收藏 -
本文用 Redis ZRANGE 的 BYSCORE、排他分值和 LIMIT 实现有序集合游标分页,说明如何保存下一页游标、避免重复分值跳过数据,并判断末页与查询成本。414 收藏 -
说明HSCAN游标与COUNT规则,给出二进制安全的JSONL增量导出示例,讨论重复字段、并发修改、响应容量、失败文件与恢复幂等的设计。334 收藏 -
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 收藏