月度归档:2026年5月 (53)

连载中 13/20

持久化:RDB 快照与 AOF 日志

重启就丢光所有缓存,Redis 也能接受——但接受到什么程度,是 RDB 和 AOF 的选择题。RDB 是定时快照,恢复快但丢得多;AOF 是逐条日志,丢得少但恢复慢;4.0 的混合持久化把两者缝在一起。fork 的内存玄机,是这道题隐藏的第三问。

#RDB#AOF#混合持久化#写时复制#fork#appendfsync
2026-05-31 · 2730 阅读 · 0 评论 · 0 赞
连载中 12/20

过期与复制:Redis 自身的两套机制

TTL 到期的 key 是谁删掉的?主库的数据是怎么到从库的?过期删除靠惰性加定期两班倒,主从复制靠 RDB 全量加 backlog 增量两段式。这两套机制藏在幕后,却直接决定了从库读到的数据新不新鲜、断线重连的代价有多大。

#过期删除#惰性删除#定期删除#主从复制#repl_backlog
2026-05-31 · 5486 阅读 · 0 评论 · 0 赞
连载中 11/20

淘汰策略:内存满了,腾谁留谁

Redis 是内存数据库,内存总有满的一天——满了以后新写入是报错还是淘汰旧数据、按什么标准淘汰,这就是 maxmemory 与八种淘汰策略的选择题。LRU 看最近、LFU 看频率,纯缓存选 allkeys,还挂了持久化的系统要用 volatile 系列。

#淘汰策略#maxmemory#LRU#LFU#noeviction
2026-05-30 · 2220 阅读 · 0 评论 · 0 赞
连载中 10/20

大 Key:Redis 里的定时炸弹

一个 hash 里塞了十万条成员、一个 value 存了几 MB 的 JSON——平时相安无事,直到某次删除把单线程卡住两秒。大 Key 的危害全是连锁反应:慢查询阻塞、网络打满、内存倾斜、迁移卡顿。发现靠扫描,治理靠拆分,预防靠规矩。

#大Key#慢查询阻塞#分桶拆分#UNLINK异步删除#内存倾斜
2026-05-30 · 7142 阅读 · 0 评论 · 0 赞
连载中 9/20

热 Key:一个分片扛下全站流量

明星官宣的瞬间,那条八卦的 key 被几十万 QPS 同时敲——Redis 集群再大,单个 key 也只住在一个分片上。热 Key 是倾斜的极端形态:加机器没用、加副本有讲究,本地缓存和多副本打散才是对症的药。先得发现它,再谈治理它。

#热Key#本地缓存#分片倾斜#多副本打散#自动探测
2026-05-29 · 3968 阅读 · 0 评论 · 0 赞
连载中 8/20

预热:别让冷启动拖垮上线

缓存空着的时候等于没有缓存——新服务上线、Redis 重启、大促前夕,冷启动的空窗期里全量流量回源,DB 承受平时十倍的冲击。预热就是把热点数据提前搬进缓存:预热什么、什么时机、怎么控制回源速率,一次讲清。

#缓存预热#冷启动#热点数据#灰度上线#流量控制
2026-05-28 · 5421 阅读 · 0 评论 · 0 赞
连载中 7/20

延迟双删与 Binlog 订阅:把同步做稳

先库后缓存留下了两根尾巴:主从延迟让回源读到旧从库,并发竞态让旧值偶尔回填——延迟双删用第二次删除兜住这两类脏数据,binlog 订阅则干脆把删缓存从业务代码里剥离出来。一个求简单直接,一个求彻底解耦。

#延迟双删#Canal#binlog订阅#主从延迟#最终一致
2026-05-27 · 5910 阅读 · 0 评论 · 0 赞
连载中 6/20

一致性:缓存与数据库的同步难题

读路径人人会写,写路径才是修罗场——为什么删缓存而不是改缓存、为什么先更新库再删缓存、并发读写交错时旧值怎么钻空子,Cache Aside 的写侧每一步都是取舍。不一致窗口消灭不了,只能把它压到工程可接受的范围。

#缓存一致性#CacheAside#先更新库再删缓存#并发竞态#最终一致
2026-05-27 · 3490 阅读 · 0 评论 · 0 赞
连载中 5/20

雪崩:同一夜失效的所有缓存

击穿是一个 key 的意外,雪崩是一批 key 的集体事故——同一时刻大量 key 集中到期,或者 Redis 整体宕机,全部读流量一瞬间涌向数据库。TTL 打散是预防针,本地缓存是缓冲垫,限流降级是止血带,高可用才是根治手术。

#缓存雪崩#TTL打散#本地缓存#限流降级#高可用
2026-05-26 · 6962 阅读 · 0 评论 · 0 赞