Redis技术文章
-
Redis Pub/Sub 断线重连不能补发已丢失消息,但可以保存订阅意图,在新连接建立后按快照恢复频道并用订阅回执确认 ready。本文给出 Go 风格实现思路和 Pub/Sub、Streams 的选型边界。309 收藏 -
Redis Pipeline 出现异常时,不能只看 Exec 总错误。本文用 Go 客户端拆分请求级、命令级和业务级结果,区分 redis.Nil、命令参数错误与连接故障,并说明部分成功与重试边界。354 收藏 -
Redis 修改 maxmemory-policy 后,应先用 CONFIG GET 确认运行时策略,再用 INFO stats 记录 evicted_keys 差值。本文给出策略变更、持久化和淘汰计数判断方法。223 收藏 -
Redis 过期键并不是只靠一个定时器逐个删除:客户端访问到已过期键时会触发访问时处理,后台也会周期性抽样清理。本文用 TTL 的正数、-1、-2 返回值建立排查顺序,并说明主动过期、访问时删除和时间精度的边界。324 收藏 -
从 AOF 多部分文件、fork 与 Copy-on-Write、fsync 和 INFO persistence 指标入手,说明重写期间磁盘增长与延迟抖动的来源,并给出配置和排查方法。218 收藏 -
Redis Cluster 的跨槽排查要从 key slot 入手。本文用 CRC16 mod 16384 解释槽位计算,结合 CLUSTER KEYSLOT、hash tag、CROSSSLOT、MOVED 和 ASK,给出多键命令的定位与键名设计方法。436 收藏 -
Redis Lua 脚本不要只返回 OK 或空值。本文用固定的状态码与 payload 契约区分业务成功、状态冲突、条件未满足和命令执行错误,并给出 pcall 与 Go 客户端解析的迁移清单。493 收藏 -
围绕 Redis ZSET 的 score 与 member 二级排序,说明如何用复合游标处理同分值成员、排他边界和分页期间的数据变化,避免稳定范围分页中的重复与遗漏。440 收藏 -
Redis Stream 的消息保留可以按数量或消息 ID 控制:MAXLEN 适合固定条数,MINID 适合按时间窗口推进。本文用 XTRIM 和 XADD 示例说明精确、近似裁剪、消费组引用以及上线前的检查边界。279 收藏 -
介绍 Redis CLIENT TRACKING 的 BCAST 模式,说明如何用 PREFIX 接收客户端缓存失效通知,并处理 RESP2 重定向、NOLOOP、前缀重叠和通知连接断开等边界。361 收藏 -
区分 go-redis 的 PoolTimeout、DialTimeout、ReadTimeout、WriteTimeout 与单次 context deadline,结合 PoolStats 判断连接池排队、建连失败和命令读写变慢。340 收藏 -
把 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 收藏