Redis技术文章
-
Redis RESP3 不是把 RESP2 换个版本号,而是会改变部分命令的返回类型。本文用 Go 和 go-redis 拆开 HGETALL 的 map/array 差异,给出升级判断、解析边界和灰度验证办法。127 收藏 -
Redis Lua 脚本返回多个值时,先把结果设计成稳定的索引数组,再按客户端类型解析;本文说明 Lua 表、RESP 数组、Python list、Go 切片和空值之间的映射。125 收藏 -
Redis GEOSEARCH 可以从地理索引中按圆形或矩形范围筛选成员。本文从配送围栏误判场景出发,拆开 BYRADIUS、WITHDIST、ASC、COUNT 与 ANY 的组合边界,给出可核对的命令结构和排障判断。124 收藏 -
Redis 8.8 新增 INCREX,把计数、上限和过期时间放进一个原子命令。文章用 redis-cli 演示 60 秒窗口限流,解释 UBOUND、ENX、SATURATE 的差别,并给出旧版本回退方案与检查边界。123 收藏 -
Redis COPY 适合在同一实例内复制缓存或配置键,但 REPLACE、DB 和 Redis Cluster 的哈希槽限制很容易被忽略。本文用可验证命令讲清返回值、TTL、复杂度和失败边界。123 收藏 -
Redis 设置了 EXPIRE 后,键并不一定在到点瞬间从内存消失。本文从 TTL 读数、访问触发的惰性删除和后台主动过期检查入手,说明为什么会看到过期键,以及怎样用命令判断问题究竟在观察方式、访问路径还是过期清理压力。122 收藏 -
Redis 8.10 的 BLMOVEM 可以阻塞等待并批量搬运列表元素,但 COUNT 与 EXACTLY 的唤醒条件完全不同。本文从目标列表间歇性断粮的故障现象出发,拆清 timeout、OBO、BULK、事务与 Lua 场景的边界,并给出修复选择和上线检查清单。122 收藏 -
Redis SCAN 是渐进式遍历,不是一次性分页接口。本文用游标、MATCH、COUNT 和去重集合拆开“漏键”错觉,给出可验收的清理脚本与边界判断。121 收藏 -
用 Redis MODULE LIST 盘点实例加载的扩展模块,核对 name、ver、path 等返回字段,并给出上线前后的风险检查方法。121 收藏 -
Redis 删除大键时,DEL 会同步承担复合值的释放成本,UNLINK 则先摘除键并把内存回收放到后台线程。本文按负载、键大小和监控方式给出选择清单。120 收藏 -
Redis 热点 key 在高并发下同时过期,所有请求会一起回源数据库,表现为 DB QPS 突增、接口超时和 Redis 命中率下降。排查时先看热点 key 的 TTL、命中率和回源日志,修复时用互斥锁、逻辑过期、随机 TTL 和降级保护控制回源压力。119 收藏 -
Redis 7.0 引入的 SPUBLISH 和 SSUBSCRIBE 会把消息限制在频道对应的集群分片内,适合降低普通 Pub/Sub 的跨节点扩散。本文从频道哈希、订阅连接和返回值入手,给出一组可复查的消息验收方法。119 收藏 -
Redis LMPOP 可以从多个 List 中选择一个非空队列并批量取出元素,但它不是轮询器。本文核对 LEFT、RIGHT、COUNT、空结果和多键顺序,给出多队列消费的安全写法与上线检查点。115 收藏 -
用 Redis Lua 脚本把库存校验与扣减放进一次 EVAL,讲清 KEYS、ARGV、返回值和集群键名的使用边界。114 收藏 -
Redis ZDIFFSTORE 会把第一个有序集合中不属于后续集合的成员写入目标键。本文用候选榜与已处理榜说明差集的成员边界、分值保留规则、空结果和集群同槽核验。112 收藏