缓存
已收录文章:21篇
-
Redis Lua 脚本一旦超过 lua-time-limit,会阻塞其他命令并返回 -BUSY。本文用一个长脚本现场说明如何确认阻塞、何时可以 SCRIPT KILL、写入后为什么只能重启,以及如何在脚本侧避免再次拖住主线程。196 收藏
-
活动报名、接口去重、用户访问统计里经常会用 Redis Set。本文从“页面显示人数不对”的现场开始,逐步验证 SADD 返回值、SCARD 数量、Key 粒度和过期策略,整理一套更稳的 Set 去重写法。194 收藏
-
Redis Lua 脚本一旦超过 lua-time-limit,会阻塞其他命令并返回 -BUSY。本文用一个长脚本现场说明如何确认阻塞、何时可以 SCRIPT KILL、写入后为什么只能重启,以及如何在脚本侧避免再次拖住主线程。184 收藏
-
线上 Redis 里堆积了过期业务前缀或历史缓存时,不能直接用 KEYS 和 DEL 硬删。用 SCAN 分批遍历、先记录样本、按速率提交 UNLINK,并保留停止开关和统计结果,能把清理风险压到可控范围。183 收藏
-
本文用商品详情缓存同时过期的场景,演示 Redis 缓存雪崩的形成过程,并给出 TTL 抖动、热点预热、互斥重建和降级保护的落地方案。139 收藏
-
Redis Hash 字段过期后,整条 Hash 不一定会立刻消失。用 HEXPIRE 设置字段级 TTL,用 HTTL 或 HPTTL 检查精度,再结合 HGET、HLEN 和主动读取判断字段是否已不可见;验收时要区分过期时间写入失败、惰性删除和整 key 生命周期。138 收藏
-
数据库 · Redis | 4星期前 | Redis · 缓存 · 限流 · Redis 8.8 · INCREX · Redis 8.8 INCREX Redis窗口限流 Redis计数器 ENX UBOUNDRedis 8.8 新增 INCREX,把计数、上限和过期时间放进一个原子命令。文章用 redis-cli 演示 60 秒窗口限流,解释 UBOUND、ENX、SATURATE 的差别,并给出旧版本回退方案与检查边界。123 收藏
-
本文从一次商品详情接口抖动出发,演示如何发现 Redis 热 Key、判断访问倾斜,并通过过期时间抖动、本地短缓存、singleflight 合并加载和拆分 Key 降低热点冲击。111 收藏
-
Golang · Go教程 | 1个月前 | golang · 缓存 · singleflight · go · 高并发 · 后端开发 · Go 并发控制 缓存失效 请求合并 singleflight 回源一个热门缓存键刚失效时,几百个请求可能同时回源,把数据库或下游接口推到峰值。Go 的 golang.org/x/sync/singleflight 能让同一个 key 的重叠调用只保留一趟加载,其余调用等待并复用结果。这里用一个商品读取场景说明放置位置、key 范围、多实例边界、错误传播和上线核对项。109 收藏