Redis技术文章
-
Redis默认单线程设计,仅用一个CPU核,多核需通过部署多个实例分摊压力;Redis7.0的--server-workers仅加速网络I/O,不提升命令执行并发。146 收藏 -
必须显式配置client-output-buffer-limit,否则普通客户端无输出缓冲区上限,易致内存耗尽;需为normal、pubsub等类型分别设置hard/soft限制,尤其pubsub缓冲区最易失控。146 收藏 -
本文用商品详情缓存同时过期的场景,演示 Redis 缓存雪崩的形成过程,并给出 TTL 抖动、热点预热、互斥重建和降级保护的落地方案。139 收藏 -
Redis Hash 字段过期后,整条 Hash 不一定会立刻消失。用 HEXPIRE 设置字段级 TTL,用 HTTL 或 HPTTL 检查精度,再结合 HGET、HLEN 和主动读取判断字段是否已不可见;验收时要区分过期时间写入失败、惰性删除和整 key 生命周期。138 收藏 -
不能。PSUBSCRIBE仅支持glob模式(、?、[abc]),不解析冒号分隔的层级语义,news::等多星写法无效;实际可行的是单通配符前缀匹配(如news:),依赖命名规范而非Redis自动路由。137 收藏 -
Redis RESP3 不是把 RESP2 换个版本号,而是会改变部分命令的返回类型。本文用 Go 和 go-redis 拆开 HGETALL 的 map/array 差异,给出升级判断、解析边界和灰度验证办法。127 收藏 -
数据库 · Redis | 3星期前 | Redis · 缓存 · 限流 · Redis 8.8 · INCREX · Redis 8.8 INCREX Redis窗口限流 Redis计数器 ENX UBOUND
Redis 8.8 新增 INCREX,把计数、上限和过期时间放进一个原子命令。文章用 redis-cli 演示 60 秒窗口限流,解释 UBOUND、ENX、SATURATE 的差别,并给出旧版本回退方案与检查边界。123 收藏 -
Redis SCAN 是渐进式遍历,不是一次性分页接口。本文用游标、MATCH、COUNT 和去重集合拆开“漏键”错觉,给出可验收的清理脚本与边界判断。121 收藏 -
Redis 热点 key 在高并发下同时过期,所有请求会一起回源数据库,表现为 DB QPS 突增、接口超时和 Redis 命中率下降。排查时先看热点 key 的 TTL、命中率和回源日志,修复时用互斥锁、逻辑过期、随机 TTL 和降级保护控制回源压力。119 收藏 -
本文用秒杀扣库存场景讲清 Redis Lua 的落地方式:在一个脚本里完成库存校验、重复订单判断、扣减库存和记录订单结果,减少并发下超卖和重复扣减风险。118 收藏 -
本文用 Redis ZSET 设计一个轻量延迟队列,讲清楚如何写入订单超时任务、按时间扫描到期任务、抢占删除、防重复处理以及失败重试。116 收藏 -
本文从一次商品详情接口抖动出发,演示如何发现 Redis 热 Key、判断访问倾斜,并通过过期时间抖动、本地短缓存、singleflight 合并加载和拆分 Key 降低热点冲击。111 收藏 -
Redis Streams 消费者在确认消息前宕机时,消息会留在待确认列表。本文说明如何通过 XAUTOCLAIM 有节制地接管超时消息,并监控重试与清理结果。110 收藏 -
Redis GEOSEARCH 做附近门店查询时,距离相同、门店坐标变化和分页游标都会影响结果稳定性。本文用 GEOSEARCH、WITHDIST 和业务排序键拆解半径分页边界,并给出可重复的校验方法。105 收藏