Redis技术文章
-
Redis Stream 消费组出现 pending 积压时,先用 XPENDING 看数量和空闲时间,再用 XAUTOCLAIM 接管超时消息,最后通过幂等、分批和回滚把积压安全排空。494 收藏 -
Redis BITFIELD 适合把多个小整数压进一个字符串,但积分计数一旦选错位宽或溢出策略,结果可能悄悄回绕。本文用积分桶示例拆开 GET、INCRBY、OVERFLOW 的边界,并给出可重复的验收命令。476 收藏 -
Redis Lua 脚本接收 ARGV 时,tonumber 可能因为空字符串、非数字或参数位置错误返回 nil,后续计算就会报错或走错分支。本文用一个库存扣减脚本拆开参数校验、默认值边界和线上验收方法。449 收藏 -
Redis HyperLogLog 适合用很小的内存估算独立访客数,但它不是精确集合,不能拿来判断某个用户是否已经领取过权益。本文从 PFADD、PFCOUNT、PFMERGE 的实际结果出发,说明误差边界、按天拆分 key 的做法和精确去重的替代方案。432 收藏 -
Redis Stream 消费者组出现积压时,先用 XPENDING 区分未分配消息和已分配未确认消息,再按 idle 时间和重试次数决定 XAUTOCLAIM、人工核查还是进入重试队列。本文用可复现的订单事件示例梳理定位、接管与回滚边界。422 收藏 -
热点商品详情被每个接口实例重复读取时,可以用 Redis 的 CLIENT TRACKING 把副本留在进程内存,同时接收键变更失效消息。文章给出 BCAST 前缀划分、失效处理和断线回收的实战流程。413 收藏 -
Redis Sorted Set 用 ZRANGE BYSCORE 做时间范围分页时,重复分数和闭区间很容易让数据重复或漏掉。本文从线上分页现场出发,给出 score 加 member 的边界游标写法、复查命令和回滚判断。405 收藏 -
数据库 · Redis | 2星期前 | Redis · go · Pipeline · 批处理 · 重试 · 幂等性 · 重试 go-redis 幂等键 批量写入 Redis Pipeline 逐条结果
Redis Pipeline 能减少网络往返,却不会把一批命令变成事务。用 go-redis 演示批量写入的部分成功、结果核对、可安全重试的边界,以及如何用幂等键避免重试造成重复副作用。391 收藏 -
Redis Functions 从 7.0 开始为服务端逻辑提供了可加载、可复用的库模型,但它不是所有 Lua 脚本的直接替代。本文用请求级脚本调用、FUNCTION LOAD、FCALL 和集群键约束拆出迁移边界。386 收藏 -
Redis 7.4 起支持给 Hash 的单个字段设置 TTL。本文用会话 token 场景说明 HEXPIRE、HTTL、条件更新和兼容检查,避免为了一个短期字段让整条 Hash 一起过期。366 收藏 -
数据库 · Redis | 3星期前 | Redis · 安全配置 · 数据库运维 · ACL · 网络隔离 · Redis公网暴露 Redis protected-mode Redis ACL Redis安全配置 Redis审计
Redis 被直接暴露在公网,靠一个密码或 protected-mode 都不够。更稳妥的方案是让端口只对可信应用网络开放,再用 ACL 分配最小命令和 key 权限、启用所需的传输保护并保留配置审计。本文按 Redis 官方安全文档梳理风险和可验证的检查顺序。364 收藏 -
Redis 客户端出现 NOAUTH 或权限拒绝时,先用 ACL GETUSER 查看用户状态、密码规则和命令类别,再用最小权限验证实际业务命令。本文给出一套不改业务数据的排查顺序。346 收藏 -
库存接口最难处理的不是把数字减一,而是让调用方准确区分扣减成功、重复请求、库存不足和参数错误。本文用 Redis Lua 原子脚本统一返回码,并给出 Go 服务端的参数、错误和兼容设计。346 收藏 -
Redis 分布式锁最危险的 bug 不是没加锁,而是释放时删掉了后来持有者的锁。本文从锁过期、业务变慢和重复释放的现场出发,说明唯一令牌如何确认所有权,再用 Redis Lua 脚本把校验与删除放进同一个原子动作,最后补上续期、超时和故障恢复边界。326 收藏 -
数据库 · Redis | 2星期前 | Redis · 缓存 · go · Redis Cluster · 排错 · Redis Cluster CROSSSLOT Hash Tag MGET CLUSTER KEYSLOT
商品详情页把库存、价格和活动状态合成一次 MGET 后,在 Redis Cluster 里突然报 CROSSSLOT,根因往往不是客户端,而是同一业务实体的 Key 没有落到同一个槽位。本文用 CLUSTER KEYSLOT、Hash Tag 和迁移期检查拆出一条可复查的修复路径。259 收藏