主题
Redis · 必学内容图
1. 数据结构与编码
五大基本类型(String/Hash/List/Set/ZSet)的命令与业务场景
底层结构:SDS、Dict(渐进式 rehash)、Listpack/Ziplist、Skiplist、Quicklist、Intset
编码切换(embstr/raw、ziplist↔hashtable、listpack 阈值、44 字节由来)
高级类型:Bitmap(位图)、HyperLogLog(基数统计)、GEO(地理位置)、Stream
为什么用跳表不用红黑树/平衡树
2. 键管理与内存
过期键删除策略(惰性删除 + 定期删除)
内存淘汰策略(8 种:noeviction/allkeys-lru/volatile-lru/LFU/random/ttl)
内存模型:一个 key 的内存构成、jemalloc 对齐、内存碎片率与主动整理
bigkey 的内存放大与拆分、容量估算
SCAN 渐进遍历(反向二进制迭代为什么安全)
3. 持久化
4. 缓存模式与三大问题
Cache Aside / Read Through / Write Through / Write Behind
缓存穿透(布隆过滤器/空值缓存)
缓存击穿(热点 key 互斥重建/逻辑过期)
缓存雪崩(TTL 随机化/多级缓存/熔断降级)
缓存与数据库双写一致性(并发删缓存陷阱、延迟双删、订阅 binlog/canal)
本地缓存 + Redis 二级(多级)缓存
布隆过滤器原理与误判率
5. 分布式锁
SETNX/SET NX EX 的原子性、误删与超时
锁续期(WatchDog)、可重入锁(Hash 实现)
Redlock 算法与争议(Martin Kleppmann 之争)
Redisson:公平锁/读写锁/信号量/MultiLock
6. 高可用:复制 / 哨兵 / Cluster
主从复制:全量(RDB+缓冲)与增量(psync/backlog)、异步复制丢数据窗口、级联复制
哨兵:主观/客观下线、Raft 选 leader、故障转移、客户端感知、脑裂
Cluster:16384 槽由来、MOVED/ASK 重定向、gossip、Hash Tag、在线扩缩容/槽迁移
三种架构选型与 min-replicas 写入保护
7. 运维与故障
Redis 6.0 多线程 IO(只并行读写系统调用)
bigkey 治理(--bigkeys/拆分/UNLINK/lazyfree)
hotkey 发现与打散
Pipeline vs 批量命令
延迟排查 SOP 与生产事故复盘
8. 新特性与选型
Redis 6 多线程、Redis 7 Functions/ACL/Sharded PubSub
Redis vs Memcached
Redis 不适用场景 / 选型短板
Stream 消息队列(消费者组/ACK/PEL)
异地多活 Active-Active / CRDT / Gossip