Redis技术文章
-
Redis Cluster 中只有同槽 key 才能稳定执行多键命令。本文用哈希标签统一业务实体的槽位,配合 CLUSTER KEYSLOT 验证命名,并说明空标签、热点和迁移边界。463 收藏 -
RedisJSON 的 JSON.MGET 可以把多个文档的同一路径一次读出,返回数组位置与输入 key 顺序对应;遇到 null 要区分 key 不存在和路径不存在,Redis Cluster 还要处理多 key 必须同 slot 的限制。463 收藏 -
Redis Stream 消费组重复收到同一条消息,通常不是 Stream 自动复制,而是上次投递没有完成 XACK,消息留在 PEL 后被重新读取或转交。本文按值班排障顺序定位原因,并给出幂等、转交和确认的收口方法。463 收藏 -
Redis 7.4 开始支持 Hash 字段独立过期。本文从稳定实体、字段生命周期、热点风险和原子写入四个维度,说明适合的数据模型、HEXPIRE 门禁规则、返回值处理,以及 Redis 8 HSETEX 的使用边界。462 收藏 -
Redis Sentinel 的下线判定要同时看时间阈值和 Sentinel 数量:down-after-milliseconds 决定单个 Sentinel 等多久,quorum 决定多少 Sentinel 同意故障。本文用三节点拓扑说明如何设置与复查,避免把检测阈值和客户端重连混为一谈。462 收藏 -
Redis Sorted Set 按字典序查询时,关键是让成员使用相同 score,再用 ZRANGE BYLEX 配置包含或排除边界;本文给出范围写法、分页和空结果排查清单。461 收藏 -
Redis Cluster跨槽批量读取不能把不同slot的key直接拼成一次MGET。本文用按slot分组、节点读取、重定向处理和原序合并的方式,给出可落地的拆分方案。461 收藏 -
Redis 的 lfu-decay-time 表示访问频率计数每减少 1 所需的分钟数,默认值 1,设为 0 则不衰减。它不是 TTL,也不是后台定时清零。本文结合 8 位计数器、OBJECT FREQ 和调参场景说明如何选择。461 收藏 -
Redis SMISMEMBER 会按照请求成员的顺序返回 0/1 数组。本文用 redis-cli 和 Go 示例说明如何稳定映射结果,并处理缺失 key、重复成员与批量成本。461 收藏 -
Redis 7 之后可以把 Lua 逻辑注册为函数,再用 FCALL 按函数名调用。本文从一个原子更新场景出发,拆清 numkeys、KEYS、ARGV、FCALL_RO 和集群迁移的边界。460 收藏 -
Redis 报 OOM 不一定是 used_memory 超过 maxmemory。本文从 maxmemory 判定、内存碎片率、客户端输出缓冲和大 key 四个方向核对真实占用,并给出可复现的 redis-cli 检查命令。460 收藏 -
Redis 缓存键如果使用相同 TTL,批量写入后可能在同一时间段集中失效。本文用 Go 示例演示如何加入可控随机抖动,并区分首次回填、刷新和热点保护。460 收藏 -
讲清 Redis BLMOVE 如何把待处理任务原子移入备份列表,并结合确认删除、可见性超时、领取令牌和幂等处理避免任务丢失。460 收藏 -
Redis Streams 消费者组出现 Pending 积压时,先用 XPENDING 区分总量、消费者和空闲时间,再用 XAUTOCLAIM 认领失联消费者的消息,最后以幂等处理和 XACK 收口。458 收藏 -
Redis CLIENT PAUSE WRITE 适合在主节点升级或故障转移前短暂暂停写命令。本文给出控制连接、复制观察、切换和 CLIENT UNPAUSE 的协作步骤,并说明 WRITE、ALL、超时和回滚边界。458 收藏