Redis技术文章
-
Redis Stream 消费者在 XREADGROUP 后处理失败,消息会停留在消费组 PEL。本文用 XPENDING 定位 pending,再比较 XCLAIM 与 XAUTOCLAIM 的接管方式,并说明何时 XACK、如何避免短暂延迟造成重复处理。408 收藏 -
Redis 配置 volatile-lru 却没有淘汰键时,先核对运行时策略和 maxmemory,再用 TTL 检查候选键是否真的带过期时间,最后排查覆盖写抹掉 TTL 的问题。279 收藏 -
Redis 更新值后 TTL 消失,通常是普通 SET 覆盖值时丢弃了原过期时间。本文用 TTL、PTTL、EXISTS 区分状态,并比较 KEEPTTL、EX/PX 与 volatile 淘汰策略。325 收藏 -
Redis 缓存键如果使用相同 TTL,批量写入后可能在同一时间段集中失效。本文用 Go 示例演示如何加入可控随机抖动,并区分首次回填、刷新和热点保护。460 收藏 -
Redis Pub/Sub 适合只通知在线订阅者,Redis Streams 适合需要留存、补发、消费确认和故障恢复的通知。本文用丢失成本与消费进度划清两者边界。480 收藏 -
Redis 连接池耗尽不一定是池太小。本文用 go-redis PoolStats、请求耗时和 Redis SLOWLOG 交叉判断池等待、慢命令与连接未归还,并给出修复顺序。152 收藏 -
数据库 · Redis | 4天前 | Redis · cluster · slot迁移 · MOVED · ASK · 客户端路由 · redis slot Redis Cluster MOVED ASK reshard 拓扑刷新
Redis Cluster 扩缩容或 reshard 时,MOVED 和 ASK 都可能出现在客户端日志里,但它们代表的路由语义不同。本文从 slot 所有权、MIGRATING/IMPORTING 状态和客户端拓扑缓存出发,说明如何判断重定向是否正常以及该刷新什么。157 收藏 -
Redis BigKeys 排查可以先用 SCAN 增量发现,再用 MEMORY USAGE 按字节估算,最后按风险和固定批次处理;本文说明 SAMPLES、COUNT 与 UNLINK 的边界。188 收藏 -
Redis 同时开启 RDB 和 AOF 后,常规重启会优先使用 AOF 重建数据集;RDB 主要承担紧凑备份和较快恢复,本文按数据窗口、启动速度与重启前检查说明如何做取舍。470 收藏 -
用一个缓存服务和一个报表读取服务的例子,拆解 Redis ACL 中用户、命令集合与 key pattern 的关系,并用 ACL DRYRUN 验收最小权限。251 收藏 -
Redis Function 适合持久化、可复用的服务端逻辑,临时 Lua 脚本适合由应用按需加载的短逻辑;本文对比两者的部署、版本管理和 EVALSHA 恢复方式。326 收藏 -
Redis Lua 脚本返回多个值时,先把结果设计成稳定的索引数组,再按客户端类型解析;本文说明 Lua 表、RESP 数组、Python list、Go 切片和空值之间的映射。125 收藏 -
Redis Stream 多消费组使用 XTRIM 时,KEEPREF 保留 PEL 引用,ACKED 只删除所有消费组都确认过的条目。本文用命令、边界和检查清单说明如何选择。267 收藏 -
数据库 · Redis | 5天前 | Redis · 故障恢复 · Streams · 消费者组 · 消息重试 · redis 消费者组 XPENDING XAUTOCLAIM Redis Streams
Redis Streams 消费者异常退出后,消息会留在 PEL 中。先用 XPENDING 观察归属、空闲时间和投递次数,再用 XAUTOCLAIM 接管超时消息,处理成功后用 XACK 完成闭环。380 收藏 -
Redis Pipeline 不是批次越大越快。本文从 RTT、回复队列和单批延迟三个角度,给出可落地的批量窗口设计与 Go 实现。181 收藏