下面给你一份Redis 知识点全景总结(面试 + 实战级),
覆盖基础 → 数据类型 → 高级特性 → 缓存问题 → 分布式 → 架构设计,适合Java 后端 / 中高级面试 / 真实项目。
一、Redis 是什么?
Redis = Remote Dictionary Server = 内存键值数据库
✅ 高性能(10万+ QPS)
✅ 单线程(命令执行)
✅ 多路 IO 复用
✅ 支持持久化
二、Redis 为什么快?(高频)
| 原因 | 说明 |
|---|---|
| 内存操作 | 无磁盘 IO |
| 单线程 | 无锁 |
| IO 多路复用 | epoll |
| 高效数据结构 | hash、跳表 |
✅不是多线程更快,而是避免上下文切换
三、Redis 数据类型(必背)
1️⃣ 五大基础类型
| 类型 | 说明 | 场景 |
|---|---|---|
| String | 字符串 | 缓存、计数 |
| Hash | 键值对 | 对象 |
| List | 链表 | 队列 |
| Set | 无序集合 | 去重 |
| ZSet | 有序集合 | 排行榜 |
2️⃣ 三大高级类型
| 类型 | 说明 |
|---|---|
| Bitmap | 位图 |
| HyperLogLog | 基数统计 |
| GeoSpatial | 地理位置 |
四、String 详解(最常用)
SET key value GET key INCR key✅ 最大 512MB
✅ 可用于:
- 缓存
- 分布式锁
- 计数器
五、Hash(对象存储)
HSET user name tom age18HGET user name✅ 比 String 更节省空间
✅ 适合存储对象
六、List(队列)
LPUSH queue a RPOP queue✅ 可做:
- 消息队列
- 排行榜
七、Set(去重)
SADD tagjavaSISMEMBER tagjava✅ 抽奖
✅ 共同好友
八、ZSet(有序集合 ⭐⭐⭐⭐⭐)
ZADD score100tom ZREVRANGE score010✅ 底层:跳表
✅ 排行榜、延迟队列
九、Redis 过期策略(重点)
1️⃣ 过期删除方式
| 方式 | 说明 |
|---|---|
| 惰性删除 | 访问时删除 |
| 定期删除 | 定时抽查 |
✅两种结合
2️⃣ 内存淘汰策略
| 策略 | 说明 |
|---|---|
| noeviction | 不淘汰(默认) |
| allkeys-lru | 全体 LRU |
| volatile-lru | 有过期时间 LRU |
| allkeys-random | 随机 |
✅生产推荐:allkeys-lru
十、缓存三大问题(必问)
1️⃣ 缓存穿透
❌ 查询不存在的数据
✅ 解决:
- 缓存空值
- 布隆过滤器
2️⃣ 缓存击穿
❌热点 key 过期
✅ 解决:
- 互斥锁
- 永不过期
3️⃣ 缓存雪崩
❌大量 key 同时过期
✅ 解决:
- 过期时间随机
- 多级缓存
十一、Redis 持久化(重点)
1️⃣ RDB(快照)
✅ 优点:快
❌ 缺点:可能丢数据
2️⃣ AOF(追加日志)
✅ 数据安全
❌ 文件大
3️⃣ 混合持久化(推荐)
✅RDB + AOF
十二、Redis 高可用
| 方案 | 说明 |
|---|---|
| 主从复制 | 读写分离 |
| 哨兵 | 自动故障转移 |
| Cluster | 分布式 |
十三、Redis Cluster
✅ 16384 槽
✅ 数据分片
✅ 高可用
十四、Redis 分布式锁(高频)
SETlock uuidNXPX30000✅ 必须:
- 唯一 value
- 过期时间
- Lua 解锁
❌ 不要用SETNX + DEL
十五、Redis 实现 MQ(补充)
| 方式 | 推荐 |
|---|---|
| List | 简单 |
| Stream | ✅ 推荐 |
十六、Redis 6 / 7 新特性
- 多线程 IO
- RESP3
- 客户端缓存
- ACL
十七、面试高频问题(必刷)
✅ Redis 为什么快?
✅ Redis 是单线程还是多线程?
✅ 缓存穿透 / 击穿 / 雪崩?
✅ Redis 持久化方式?
✅ Redis 内存淘汰策略?
✅ Redis 分布式锁实现?
✅ Redis 和 Memcached 区别?
十八、面试标准答案(背这段 ✅)
Redis 是基于内存的高性能键值数据库,采用单线程执行命令,通过 IO 多路复用提升性能。
支持多种数据结构,常用于缓存、分布式锁和排行榜。
通过 RDB 和 AOF 实现持久化,通过主从、哨兵和 Cluster 实现高可用。
在缓存场景中,需要重点解决缓存穿透、击穿和雪崩问题。
十九、一句话总结(记住这句)
✅Redis = 内存 + 数据结构 + 高并发 + 分布式