Redis技术文章
-
Redis AOF 重写时,内存风险主要看 fork 之后的 COW 增长,磁盘风险则要拆成剩余空间、写入吞吐和 fsync 排队。本文用 INFO、MEMORY STATS、df 与 iostat 建立一套可复用的判断清单。501 收藏 -
Redis Stream 的 XTRIM 只限制流中条目,不会自动解决消费组 PEL 积压。本文用 XLEN、XINFO GROUPS、XPENDING 区分问题,并给出 MAXLEN、ACKED、DELREF 的选择方法。501 收藏 -
Redis Lua 脚本不要只返回 OK 或空值。本文用固定的状态码与 payload 契约区分业务成功、状态冲突、条件未满足和命令执行错误,并给出 pcall 与 Go 客户端解析的迁移清单。493 收藏 -
Redis 7.4 起可用 HEXPIRE 和 HPEXPIRE 为 Hash 字段设置独立 TTL。本文从版本确认、字段写入、TTL 返回值到 HSET 覆写陷阱,给出一套可执行的配置与排查方法。488 收藏 -
Redis ZRANGEBYLEX 适合在 Sorted Set 成员分值相同的前提下按字典序取范围。本文用 redis-cli 演示边界符号、LIMIT 分页、游标衔接及 Redis 6.2+ 的 ZRANGE BYLEX 替代写法。482 收藏 -
Redis BITFIELD 默认使用 WRAP;本文对比 WRAP、SAT、FAIL 的溢出语义,并从位宽、offset、作用范围和返回 nil 四个方向排查策略不生效。473 收藏 -
Redis Lua 脚本中的 key 必须通过 EVAL 的显式 key 参数传入,业务值放入 ARGV。本文用最小示例说明 numkeys 如何划分 KEYS 与 ARGV,并演示多 key 脚本的同槽检查。473 收藏 -
Redis Sorted Set 按字典序查询时,关键是让成员使用相同 score,再用 ZRANGE BYLEX 配置包含或排除边界;本文给出范围写法、分页和空结果排查清单。461 收藏 -
Redis Functions 升级最容易混淆的是 library name、function name 和 Lua 脚本 SHA1。本文用整库替换、脚本兼容窗口和升级检查表,说明如何保持业务调用名稳定。455 收藏 -
Redis UNLINK 只会先把 key 从键空间摘除,真正的对象释放在后台异步完成。本文用 lazyfree 队列、used_memory、RSS 和 MEMORY STATS 建立删除大键后的内存回收判断方法。454 收藏 -
Redis 分布式锁续期失败时,不能只看异常或单独读取 TTL。本文用唯一令牌、原子脚本和 PTTL 区分锁仍由本客户端持有、已被接管与状态未知,并说明安全释放和业务栅栏边界。451 收藏 -
围绕 Redis ZSET 的 score 与 member 二级排序,说明如何用复合游标处理同分值成员、排他边界和分页期间的数据变化,避免稳定范围分页中的重复与遗漏。440 收藏 -
Redis Client Tracking 不发失效通知时,重点检查物理连接、RESP2/RESP3 通知模型、REDIRECT 目标、跟踪模式和连接重连。439 收藏 -
Redis Cluster 的跨槽排查要从 key slot 入手。本文用 CRC16 mod 16384 解释槽位计算,结合 CLUSTER KEYSLOT、hash tag、CROSSSLOT、MOVED 和 ASK,给出多键命令的定位与键名设计方法。436 收藏 -
Redis RESP3 的 Push 帧可以在普通命令回复前后到达。本文比较 RESP2、成熟 RESP3 客户端和自写解析器三种兼容方案,并给出 HELLO 3、Push 分发与 client tracking 的检查方法。415 收藏