Skip to content

Redis ​

Redis 是一个基于内存的高性能键值数据库。除了 String、Hash、List、Set、ZSet 等基础数据结构,还提供过期、持久化、发布订阅、Stream、Lua、事务等能力。

实际项目中我主要把它用于:缓存、分布式锁、计数、限流以及临时状态管理。本模块按「原理 → 结构 → 场景能力 → 实战」组织,每块强调怎么用、踩什么坑、怎么优化,而不是背命令大全。


学习 / 面试地图 ​

分区核心问题入口
1. 基础原理是什么、为什么快、线程与 IO基础原理
2. 数据结构选哪种类型、底层与场景数据类型 · 命令与过期
3. 缓存穿透/击穿/雪崩、热点与一致性缓存问题
4. 持久化RDB / AOF / 混合与恢复持久化
5. 高可用主从、Sentinel、Cluster集群与高可用
6. 分布式锁、Redisson、续期与误删分布式锁
7. 并发原子、Lua、库存、限流并发与原子
8. 消息Pub/Sub、Stream、延迟队列消息与事务
9. 性能BigKey、HotKey、Pipeline、淘汰性能优化
10. 实战登录、秒杀、点赞、排行榜等场景实战

快速刷题仍可用:面试高频总览。
按追问连续口述练:面试连环追问。


我怎么定位 Redis ​

text
不是「第二个 MySQL」
而是:热数据与协调能力层

优先:
  缓存读路径
  分布式互斥(锁)
  计数 / 限流 / 会话与临时状态

谨慎:
  当唯一可靠消息队列(复杂投递语义优先 MQ)
  当永久主存(要靠持久化 + 备份 + 恢复演练)

核心优化原则(贯穿全模块) ​

  1. Key 设计规范:业务前缀 + 明确过期;禁止无 TTL 的大杂烩
  2. 防穿透 / 击穿 / 雪崩:空值、互斥、过期随机、多级缓存
  3. 锁必须可续期、可校验持有者:优先 Redisson,忌裸 SETNX 忘记过期
  4. 大 Key / 热 Key 单独治理:拆分、本地缓存、读写分离或集群槽位感知
  5. 批量用 Pipeline / Lua:减 RTT;耗时命令与 KEYS * 禁止上生产
  6. 高可用按需求选型:主从够用就别上 Cluster;Cluster 要懂槽位与跨槽限制

按左侧菜单分区推进;实战页把能力串成可口述的项目故事。