Redis技术文章
-
Redis Stream 消费组重复收到同一条消息,通常不是 Stream 自动复制,而是上次投递没有完成 XACK,消息留在 PEL 后被重新读取或转交。本文按值班排障顺序定位原因,并给出幂等、转交和确认的收口方法。463 收藏 -
Redis Stream 的 XREAD COUNT 只限制本次返回消息数量,不是全局限流。本文说明它与读取游标、BLOCK、多 Stream 以及 XREADGROUP 的边界。166 收藏 -
Redis Stream 消费者组的待处理消息位于 PEL 中,本文用 XPENDING 依次查看摘要、范围明细、消费者归属和空闲时间,并说明何时使用 XAUTOCLAIM、XCLAIM 与 XACK。250 收藏 -
Redis JSON.SET 只能在根路径创建不存在的 JSON 文档;已有父对象时可以新增最后一级成员,但不能自动补齐缺失的中间路径。本文用返回值和命令示例拆开这三个边界。204 收藏 -
Redis EXPIRE 默认会覆盖已有 TTL。如果业务只允许新过期时间更短,可以使用 EXPIRE key seconds LT,让 Redis 在服务端比较过期时间并返回 1 或 0。本文结合 TTL、NX、XX 和 PEXPIRE 说明缓存刷新与并发场景的用法。244 收藏 -
Redis JSON.SET 配合根路径和 XX 可仅更新已有文档,但子路径 XX 还要求字段存在。通过局部更新与整份替换示例,说明未命中处理、存在性竞态和版本锁边界。173 收藏 -
Redis CLIENT PAUSE WRITE 适合在主节点升级或故障转移前短暂暂停写命令。本文给出控制连接、复制观察、切换和 CLIENT UNPAUSE 的协作步骤,并说明 WRITE、ALL、超时和回滚边界。458 收藏 -
Redis GETDEL 将读取字符串值和删除键放在一条命令中,适合单键无条件的一次性消费。本文说明 Go 调用、未命中、类型错误以及需要条件或跨键原子性时的替代边界。306 收藏 -
Redis ACL 要同时限制命令和键:用 ACL SETUSER 从零配置最小权限,显式移除全库命令,再用 ACL DRYRUN 排查命令或键模式未命中的原因。146 收藏 -
用 Redis SLOWLOG LEN 和 SLOWLOG GET 找到慢命令,读懂耗时与参数字段,再根据阈值和容量配置进行安全排查。406 收藏 -
Redis 持久化选择要先看可接受的数据丢失窗口,再比较 RDB 快照、AOF 增量日志和 RDB+AOF 组合。本文给出场景边界、fsync 配置和上线前检查清单。451 收藏 -
RedisJSON 的 JSON.MGET 可以把多个文档的同一路径一次读出,返回数组位置与输入 key 顺序对应;遇到 null 要区分 key 不存在和路径不存在,Redis Cluster 还要处理多 key 必须同 slot 的限制。463 收藏 -
Redis Pub/Sub 不保存离线消息,也不确认业务完成。本文比较纯通知、通知加状态回源与持久事件方案,说明断线、发布回执、重复处理及版本校正的可靠性边界。288 收藏 -
数据库 · Redis | 3星期前 | Redis · 错误处理 · 事务 · exec · watch Redis事务 Discard WRONGTYPE Redis MULTI EXECABORT
Redis MULTI 报错时,先看错误发生在命令入队前还是 EXEC 执行时:语法和参数错误要修正并清理事务,WRONGTYPE 等运行时错误要逐项检查 EXEC 返回数组,WATCH 冲突才适合按条件重试。170 收藏 -
Redis 键过期后,used_memory、used_memory_rss 和 allocator 内存不一定同时下降。本文从 TTL、过期清理、分配器碎片和 RSS 四个层次判断现象,再给出低风险的处理顺序。380 收藏