CORE CONCEPTS · 内存数据结构
Redis 核心知识
Redis 的低延迟来自内存数据结构和单命令原子性。持久化、淘汰、复制与 Cluster 需要按数据丢失预算设计。
学完应该能做到
- 能选择数据结构
- 能计算内存与过期风险
- 能设计复制和 Cluster 故障切换
三个必须建立的心智模型
数据结构与原子性
String、Hash、Set、ZSet、Stream 等提供不同复杂度;Lua/Functions 可组合原子逻辑。
- 先估算 O(N)
- 避免大 key
- 脚本必须有时间边界
过期、淘汰与持久化
TTL、maxmemory policy、RDB 和 AOF 分别解决生命周期、容量与恢复。
- 区分 expire 与 eviction
- 监控 fork/AOF rewrite
- 演练数据恢复
复制与 Cluster
异步复制意味着故障切换可能丢失已确认写入;Cluster 用 hash slot 分片。
- 理解 WAIT 的边界
- 使用 hash tag 控制多键操作
- 处理 MOVED/ASK
把知识落到工程决策
建模前
先写出访问模式、正确性边界、数据生命周期和故障预算,再决定表、键、索引或分区。
上线前
使用接近生产的数据分布与并发压测,记录查询计划、资源水位和恢复时间作为基线。
运行中
监控延迟分位数、容量增长、后台维护与复制健康;报警必须能映射到可执行处置步骤。