Redis技术文章
-
Redis LMPOP 可以在多个候选列表中按 key 顺序找到第一个非空列表,再从 LEFT 或 RIGHT 批量弹出元素。本文说明参数、返回结构、空结果、优先级队列设计,并比较 BLMPOP 与 LMOVE 的适用边界。326 收藏 -
Redis Stream 的 XTRIM MINID 会删除低于指定 ID 的历史条目,适合按时间近似控制保留窗口;MAXLEN 则按数量裁剪。本文用命令、边界表和复查方法说明精确与近似裁剪的取舍。110 收藏 -
Redis Streams 消费组恢复超时 pending 消息时,可以给 XAUTOCLAIM 加 JUSTID,只接管并返回消息 ID,再按 ID 读取和处理,成功后用 XACK 清理 PEL。本文用一个小型恢复器说明游标、COUNT、0-0 和失效 ID 的处理边界。187 收藏 -
Redis Stream 的 NOACK 让新读取消息不进入 PEL,却不能保证业务成功。本文给出消费组命令和两组对照示例,区分读取、成功与 Pending 计数,说明性能测量方法及丢失容忍边界。498 收藏 -
Redis Sentinel 的下线判定要同时看时间阈值和 Sentinel 数量:down-after-milliseconds 决定单个 Sentinel 等多久,quorum 决定多少 Sentinel 同意故障。本文用三节点拓扑说明如何设置与复查,避免把检测阈值和客户端重连混为一谈。462 收藏 -
Redis Search 可通过 FT.SEARCH 的 TIMEOUT 设置单次查询预算,并结合 search-timeout 默认值和 search-on-timeout 策略判断返回部分结果还是失败。483 收藏 -
Redis Hash 适合平面字段和字段级读写,Redis JSON 适合嵌套对象、数组和路径级访问。本文从数据形状、更新粒度、查询能力、内存成本与生产迁移边界说明两者如何选择。277 收藏 -
Redis 分布式锁请求超时不等于加锁失败。本文区分请求、业务与租约期限,解释身份比较释放、续租失败、SDK 重试和 fencing 的职责,帮助处理未知结果并防止旧持有者迟到写入。425 收藏 -
从客户端 GET、判断、DECRBY 的竞态出发,说明 Redis Lua 如何把检查与更新放入同一次原子执行,并给出 KEYS、ARGV、EVALSHA、NOSCRIPT 和脚本长度的迁移清单。363 收藏 -
Redis TTL 不按预期过期,通常不是 Redis 忽略了时间,而是过期没有成功写入、后续 SET 覆盖清除了 TTL,或把主动清理误解成精确计时。本文用 TTL、PTTL 和最小命令集逐层定位。380 收藏 -
Redis 大 Key 不一定要改业务接口才能治理。本文从测量边界开始,演示如何按字段组拆成多个 Hash,用读取门面保持调用方式不变,再通过双写、回填、切换和旧 Key 下线完成迁移。207 收藏 -
Redis RDB 与 AOF 的选择应围绕数据资产、允许丢失窗口和恢复耗时展开。本文比较快照、同步策略与重写边界,说明隔离历史备份为何不可替代,并给出只读检查和恢复演练思路。119 收藏 -
Redis AOF 重写期间延迟升高时,先用 INFO persistence 确认窗口,再结合 COW、fork、fsync 排队和延迟事件区分资源竞争与命令本身变慢。134 收藏 -
Redis Cluster 多键命令报 CROSSSLOT,通常是参与命令的键被分到了不同 hash slot。本文介绍槽位检查、hash tag 设计和生产边界。335 收藏 -
Redis Streams 消费者组出现 Pending 积压时,先用 XPENDING 区分总量、消费者和空闲时间,再用 XAUTOCLAIM 认领失联消费者的消息,最后以幂等处理和 XACK 收口。458 收藏