Redis技术文章
-
Redis 配置 volatile-lru 却没有淘汰键时,先核对运行时策略和 maxmemory,再用 TTL 检查候选键是否真的带过期时间,最后排查覆盖写抹掉 TTL 的问题。279 收藏 -
Redis Stream 的消息保留可以按数量或消息 ID 控制:MAXLEN 适合固定条数,MINID 适合按时间窗口推进。本文用 XTRIM 和 XADD 示例说明精确、近似裁剪、消费组引用以及上线前的检查边界。279 收藏 -
Redis Lua 脚本返回多条结果时,关键不在于把值塞进 table,而在于分清 KEYS 与 ARGV、避开 nil 截断,并按 RESP2 的数组语义设计客户端解码。278 收藏 -
Redis 8.10 新增 LMOVEM 与 BLMOVEM。本文用 COUNT、EXACTLY、OBO、BULK 四个边界说明如何在非阻塞搬运和等待数据的队列消费者之间做选择。278 收藏 -
把 Redis MEMORY DOCTOR 当作内存问题线索入口,再用 INFO memory 和 MEMORY STATS 区分数据集、历史峰值、分配器碎片及客户端和复制缓冲区,按证据选择治理动作并复测。277 收藏 -
Redis 连接池耗尽时,报错常常出现在业务命令而不是建连阶段。本文用 go-redis 的两个连接槽复现等待超时,再结合 CLIENT LIST、PoolStats 和复用检查确定该调池大小还是缩短占用时间。275 收藏 -
Redis EXPIRE 再次续期会直接替换旧 TTL。本文用会话滑动过期场景解释默认语义,并比较 NX、XX、GT、LT 的使用边界与排查方法。273 收藏 -
对比 Redis Pub/Sub 与 Streams 的事件可靠性,说明在线广播、持久化、消费组、XACK、PEL 和故障恢复的边界,帮助按业务是否允许丢失选择消息模型。270 收藏 -
Redis 的 LASTSAVE 只能说明最近一次成功写盘时间。本文用 BGSAVE、INFO persistence 和时间戳变化,判断 RDB 快照到底是成功、进行中还是失败。269 收藏 -
Redis MEMORY DOCTOR 给的是启发式建议,不是最终结论。本文把提示拆成峰值、分配器、进程和连接缓冲四层,并说明如何结合 INFO memory、MEMORY STATS 与绝对字节数确认根因和处理边界。269 收藏 -
Redis Hash 可以把多个业务计数放在同一个 key 下,再用 HINCRBY 按 field 分别累加。本文说明首次写入、返回值、读取方式、非整数值和 64 位整数边界。268 收藏 -
Redis 发现疑似大 key 后,先用 TYPE、OBJECT ENCODING 和 MEMORY USAGE 分层确认数据类型、内部编码与实际内存,再决定拆分、限流或迁移,避免只看字符串长度误判。267 收藏 -
Redis Stream 多消费组使用 XTRIM 时,KEEPREF 保留 PEL 引用,ACKED 只删除所有消费组都确认过的条目。本文用命令、边界和检查清单说明如何选择。267 收藏 -
replica-read-only 只会拒绝客户端直接向 Redis 副本写入,不会让异步复制变成强一致;读后写场景仍需主节点读取、WAIT 与明确的路由策略。267 收藏 -
Redis 8.4 为 XREADGROUP 增加 CLAIM 选项,可在一次读取中优先接管达到空闲阈值的 Pending 消息,再读取新消息。本文用订单通知流说明 COUNT、BLOCK、重试计数和 XACK 的生产边界。266 收藏