Redis技术文章
-
用 INFO replication 对照主库与副本 offset,结合链路、同步状态和 backlog 覆盖范围,判断 Redis 副本是在追赶、断链还是需要全量同步。402 收藏 -
从 Redis Key 生命周期治理趋势入手,分析散落 Key、无 TTL、大 Key 和过期策略带来的问题,给出规则登记、扫描任务、告警处理、复盘指标的渐进式采用路径。400 收藏 -
Redis 8.10 的 XREADGROUP 在多流消费时新增 MAXCOUNT 与 MAXSIZE 参数。本文区分 COUNT 的单流上限和 MAXCOUNT 的总量预算,并说明 PEL、CLAIM 与响应大小如何一起检查。394 收藏 -
数据库 · Redis | 1个月前 | Redis · go · Pipeline · 批处理 · 重试 · 幂等性 · 重试 go-redis 幂等键 批量写入 Redis Pipeline 逐条结果
Redis Pipeline 能减少网络往返,却不会把一批命令变成事务。用 go-redis 演示批量写入的部分成功、结果核对、可安全重试的边界,以及如何用幂等键避免重试造成重复副作用。391 收藏 -
Redis 8 和 8.8 改善了全量同步路径,但线上仍要围绕复制偏移量、复制积压缓冲区、副本延迟和故障切换建立观察清单。390 收藏 -
连接池复用能减少建连开销,但空闲连接可能已经失效。本文用 Redis PING 和 redis-py 示例说明健康检查、失效连接隔离、连接重建与业务重试的边界。387 收藏 -
Redis Functions 从 7.0 开始为服务端逻辑提供了可加载、可复用的库模型,但它不是所有 Lua 脚本的直接替代。本文用请求级脚本调用、FUNCTION LOAD、FCALL 和集群键约束拆出迁移边界。386 收藏 -
从原子操作、脚本发布、集群路由和故障回退几个边界比较 Redis Lua 脚本与 Functions,给出可落地的选择和验收方法。385 收藏 -
Redis Streams 使用 XREADGROUP 时,空结果不一定代表没有消息。本文从 BLOCK 超时、已确认消息和 XPENDING 消费者状态三条线核对消息是否真正读到,并给出可复查的命令与边界。382 收藏 -
Redis LPOS 查找列表元素时,负数 RANK、List 下标和空结果容易混淆。本文用重复通知场景拆解从尾部定位、扫描边界与应用侧验收。381 收藏 -
数据库 · Redis | 1星期前 | Redis · 故障恢复 · Streams · 消费者组 · 消息重试 · redis 消费者组 XPENDING XAUTOCLAIM Redis Streams
Redis Streams 消费者异常退出后,消息会留在 PEL 中。先用 XPENDING 观察归属、空闲时间和投递次数,再用 XAUTOCLAIM 接管超时消息,处理成功后用 XACK 完成闭环。380 收藏 -
Redis Functions 会把 Lua 逻辑作为函数库保存。本文用一个订单状态校验函数说明 FUNCTION LOAD、REPLACE、FUNCTION LIST 和 FUNCTION DELETE 的切换边界,给出发布前验收与失败回滚顺序。379 收藏 -
Redis Lua 返回 RESP3 map 时,客户端是否拿到字典取决于脚本内部的 redis.setresp(3) 与连接侧的 HELLO 3 是否分别配置正确。本文拆开两层协议,说明 RESP2 为何会把 map 展平成交替键值数组,并给出客户端解析检查表。379 收藏 -
Redis 连接池耗尽不等于 Redis 慢。本文用 go-redis PoolStats、SLOWLOG GET 和 CLIENT LIST 区分慢命令、池等待与请求生命周期未结束,并给出修复顺序。378 收藏 -
Redis 的 EXEC 返回 nil/null,通常表示 WATCH 监视的键在提交前被触碰,不能据此判断具体哪个客户端打断了事务。本文区分监视冲突、队列错误和事务内命令错误,并给出带上限的重试写法。377 收藏