Redis技术文章
-
把 Redis MEMORY DOCTOR 当作内存问题线索入口,再用 INFO memory 和 MEMORY STATS 区分数据集、历史峰值、分配器碎片及客户端和复制缓冲区,按证据选择治理动作并复测。277 收藏 -
Redis RESP3 的 Push 帧可以在普通命令回复前后到达。本文比较 RESP2、成熟 RESP3 客户端和自写解析器三种兼容方案,并给出 HELLO 3、Push 分发与 client tracking 的检查方法。415 收藏 -
Redis Cluster 遇到 CROSSSLOT 时,先区分单键 pipeline 的跨节点分发和多键命令的跨槽约束。本文用 CLUSTER KEYSLOT、hash tag、同槽分组和 ClusterClient 示例说明如何拆分,并用批次、槽位、错误数和 P95 验证改造结果。135 收藏 -
Redis ACL 的 key pattern 仍放行意外键,通常不是一个窄规则失效,而是旧的 ~*、selector、glob 范围或无 key 参数命令共同造成。本文用 ACL GETUSER、ACL DRYRUN 和 reset 重建方法定位并修正。215 收藏 -
Redis Functions 升级最容易混淆的是 library name、function name 和 Lua 脚本 SHA1。本文用整库替换、脚本兼容窗口和升级检查表,说明如何保持业务调用名稳定。455 收藏 -
Redis Lua 脚本中的 key 必须通过 EVAL 的显式 key 参数传入,业务值放入 ARGV。本文用最小示例说明 numkeys 如何划分 KEYS 与 ARGV,并演示多 key 脚本的同槽检查。473 收藏 -
Redis 7.4 以后可以给 Hash 的单个 field 设置过期时间。本文说明 field 到期后 HGETALL 的实际返回、空 Hash 判断,以及用 HTTL 排查 HSET 覆盖清除 TTL 的方法。236 收藏 -
Redis ZPOPMIN 会在返回最低分成员的同时把它从有序集合删除,消费者崩溃时可能造成任务丢失。本文用处理中集合、幂等键和超时回收补上这个窗口。369 收藏 -
Redis Stream 保留消息时,MAXLEN 适合固定条数窗口,MINID 适合按时间或事件 ID 淘汰。本文比较近似与精确裁剪,并给出复查与消费组判断清单。385 收藏 -
Redis XCLAIM 的 min-idle-time 是消息可被接管的毫秒门槛,本文结合 XPENDING、IDLE、JUSTID 和 XACK 说明如何判断重试条件与验证接管结果。250 收藏 -
XREAD 可以一次读取多个 Redis Stream,但每条流都要配一个独立 ID。本文用订单和支付流说明 0-0、$、COUNT、BLOCK 的用法,以及如何在应用层维护游标并整理跨流结果。205 收藏 -
Redis SCAN 即使带了 MATCH 和 COUNT,也可能在一次完整迭代中返回重复键。原因是 SCAN 只保存游标,MATCH 负责过滤,COUNT 只是工作量提示;应用侧应使用幂等操作或按需去重,并检查遍历期间的数据变化。305 收藏 -
Redis Cluster 中,普通 Pub/Sub 适合全局广播,shard channels 适合按槽位限制传播范围。本文用命令、槽位和可靠性边界说明两者如何选。311 收藏 -
Redis CLIENT NO-EVICT ON 只保护当前连接,使它在启用 maxmemory-clients 后不进入客户端淘汰候选。本文区分客户端淘汰与键淘汰,说明同连接初始化、阈值配置和输出缓冲区边界。411 收藏 -
Redis LATENCY DOCTOR 只分析实例内部延迟事件,业务接口耗时还包含网络、连接池、序列化和下游调用。本文用 LATEST、HISTORY、慢日志与应用指标对齐排查,并说明 LATENCY RESET 的证据风险。363 收藏