Redis技术文章
-
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 收藏 -
SLOWLOG RESET 会永久清空 Redis 当前慢日志。正确做法是先用 SLOWLOG GET 导出条目,写入外部审计存储并确认成功,再执行 RESET;轮询时用条目 ID 去重,并为重启建立采集代次。205 收藏 -
Redis OBJECT ENCODING 只告诉你 key 当前采用的内部布局。本文用 listpack、hashtable 和 quicklist 说明编码变化的触发条件,并给出结合 MEMORY USAGE 与延迟数据判断真实性能影响的方法。308 收藏 -
Redis MEMORY USAGE 的 SAMPLES 不是精度百分比,而是嵌套集合成员的采样数量。本文解释默认值、SAMPLES 0、估算波动和容量规划时的取值方法。162 收藏 -
Redis UNLINK 只会先把 key 从键空间摘除,真正的对象释放在后台异步完成。本文用 lazyfree 队列、used_memory、RSS 和 MEMORY STATS 建立删除大键后的内存回收判断方法。454 收藏 -
Redis COPY 的 REPLACE 会整体替换已存在的目标 key,而不是合并字段。本文用返回值、对象边界、TTL、复杂度和集群槽位说明如何安全判断复制结果。325 收藏