缓存
Redis 的数据结构与内存、缓存分层与一致性,以及把 Redis 当存储用时的持久化、故障切换、延迟诊断、集群与并发正确性。
从哪里开始
先读数据结构与内存管理,知道缓存能装多少、满了会怎样;再读一致性与分层设计,决定不一致窗口和降级方案。
数据不能随便丢时,按「持久化 → 故障切换 → 延迟诊断 → 集群 → 原子性」依次读,每篇都给出实测的失败窗口和恢复流程。
文章
01Redis 数据结构与编码选对结构与编码能省一半内存:listpack 阈值、embstr 分界、Hash 分桶、Bitmap 与 HyperLogLog 实测→02Redis 内存满了会怎样淘汰策略实测、volatile-* 的陷阱、LFU 抗扫描、过期回收时间线与主动碎片整理→03缓存一致性的四种写法Cache Aside、延迟双删、写入标记、Binlog 订阅的不一致窗口与运维成本→04多级缓存、预热与热点数据每层缓存挡住什么、预热怎么不打垮数据库、Redis 故障的三道防线→05Redis 持久化与恢复进程崩溃与断电下 AOF 各丢多少、always 的代价、AOF 损坏与 BACKUP 恢复实测→06Redis Sentinel 故障切换服务恢复了,已确认的写入为什么还会丢:分区时间线、min-replicas 与 WAIT 实测→07Redis 为什么突然变慢事件循环与后台任务的边界,SLOWLOG 看得到和看不到的六类抖动→08Redis Cluster 的应用契约hash slot 与 hash tag、MOVED 与 ASK、在线迁移、大 key 与倾斜、故障提升实测→09Redis 原子性边界名额扣减五种写法、事务不回滚、Function 与脚本缓存、租约过期与 fencing token→10基于 Redis 的分布式信号量List + ZSET 限制并发加载实例数,含崩溃补偿、并发压力与租约早于任务结束的实测→
相关专题
- Domain Driven Kit · Cache 两级缓存 — Caffeine + Redis 两级缓存的一个完整实现
- 分布式与高并发 — 用 Redis 实现分布式锁
- 数据存储 — MySQL 的复制、故障切换与误删恢复,可与本专题的 Redis 部分对照阅读