Redis技术文章
-
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 收藏 -
Redis EXPIRE 的 NX 只在 key 没有过期时间时设置 TTL,XX 只在 key 已有过期时间时设置 TTL。本文用 TTL、返回值和 redis-cli 示例说明两者的选择边界。153 收藏 -
Redis 写入缓存时用 SET 的 EX 或 PX 同步设置值和 TTL,读取并续期时用 GETEX,避免 GET、SET、EXPIRE 拆分造成竞态;本文还区分单命令原子性与多步业务条件。303 收藏 -
Redis LPOS 的 rank 决定从头部还是尾部计数,maxlen 决定最多比较多少个列表元素;两者组合时,返回位置仍是原列表的零基索引。156 收藏 -
BLMOVE 阻塞超时不会移动任何元素,因此不需要回滚。真正需要补偿的是任务已经进入 processing 后业务失败或 worker 崩溃的场景。本文用 ready、processing、ack 和重试边界设计可靠队列。111 收藏 -
Redis Client Tracking 不发失效通知时,重点检查物理连接、RESP2/RESP3 通知模型、REDIRECT 目标、跟踪模式和连接重连。439 收藏 -
Redis Cluster 的多键命令要求相关键位于同一 hash slot。本文用 hash tag 设计键名,再用 CLUSTER KEYSLOT 排查空标签、嵌套花括号和模板不一致等问题。358 收藏 -
Redis WATCH 事务被放弃时,不要盲目重试所有错误。本文用 Go 示例说明如何识别 TxFailedErr、保持事务连接、设置退避上限并完成反向验证。230 收藏