高频 Redis 面试题清单
解析:https://blog.csdn.net/weixin_43016432/article/details/154188915?sharetype=blogdetail&sharerId=154188915&sharerefer=PC&sharesource=weixin_43016432&spm=1011.2480.3001.8118
一、基础篇(必问)
这些是 Redis 面试的“入门必考”,不掌握基本没法往下聊。
-
Redis 是什么?有哪些优缺点?
- 考察点:内存数据库、单线程模型、性能高、支持多种数据结构、持久化、缺点(内存消耗、单线程 CPU 限制等)
-
Redis 支持哪些数据类型?使用场景分别是什么?
- 考察点:String、List、Set、Hash、ZSet、Bitmap、HyperLogLog、Geo
-
Redis 为什么这么快?
- 考察点:内存存储、单线程避免上下文切换、IO 多路复用、优化的数据结构
-
Redis 持久化方式有哪些?区别是什么?
- 考察点:RDB、AOF、混合持久化,优缺点、适用场景
-
Redis 过期策略有哪些?
- 考察点:定期删除、惰性删除、内存淘汰策略(LRU、LFU、随机等)
-
Redis 常见的内存淘汰策略有哪些?
- 考察点:
volatile-lru、allkeys-lru、volatile-ttl、allkeys-random等
- 考察点:
二、进阶篇(核心能力)
这些问题考察你对 Redis 在业务中的应用能力。
-
Redis 分布式锁的实现原理?如何保证安全释放?
- 考察点:
SET NX EX、唯一标识、Lua 脚本、RedLock 算法
- 考察点:
-
Redis 如何实现延时队列?
- 考察点:ZSet + 时间戳、阻塞队列(BLPOP)、Stream
-
Redis 如何实现秒杀系统?
- 考察点:库存预减、Lua 脚本原子性、限流、异步下单
-
Redis 如何实现排行榜功能?
- 考察点:ZSet 的
ZADD、ZREVRANGE、ZINCRBY
- 考察点:ZSet 的
-
Redis 如何防止缓存穿透、缓存击穿、缓存雪崩?
- 考察点:布隆过滤器、互斥锁、热点数据预热、随机过期时间
-
Redis 主从复制的原理?
- 考察点:全量复制、部分复制、PSYNC、复制偏移量
-
Redis 哨兵模式的原理?
- 考察点:监控、选主、通知、自动故障转移
-
Redis Cluster 集群的原理?
- 考察点:槽(slot)分配、节点通信、数据迁移
三、高级篇(性能与原理)
这些问题是资深开发或架构师岗位常问的。
-
Redis 单线程为什么还能这么快?CPU 瓶颈怎么解决?
- 考察点:单线程处理命令,避免锁竞争;多实例分片、Cluster 扩展
-
Redis 内存占用如何优化?
- 考察点:压缩数据结构(ziplist、intset)、合理过期、淘汰策略
-
Redis 大 key 问题怎么处理?
- 考察点:拆分大 key、SCAN 代替 KEYS、避免阻塞
-
Redis 热 key 问题怎么处理?
- 考察点:多副本、分片、热点数据本地缓存
-
Redis Pipeline 是什么?有什么作用?
- 考察点:批量发送命令减少网络延迟
-
Redis 事务(MULTI/EXEC)和 Lua 脚本的区别?
- 考察点:事务不支持回滚、Lua 脚本原子性更强
-
Redis 如何做限流?
- 考察点:令牌桶、漏桶、ZSet 计数、Lua 脚本
-
Redis 如何处理持久化文件损坏?
- 考察点:
redis-check-rdb、redis-check-aof
- 考察点:
四、加分题(面试官眼前一亮)
如果你能答出来,面试官会觉得你很有实战经验。
-
Redis 4.0 混合持久化的原理?
- 考察点:AOF 重写时先写 RDB 快照,再追加增量命令
-
Redis 内部数据结构有哪些?
- 考察点:SDS、ziplist、skiplist、dict、quicklist
-
Redis 如何实现消息队列?
- 考察点:List、Pub/Sub、Stream 的区别与场景
-
Redis 如何保证高可用和数据一致性?
- 考察点:CAP 理论、异步复制、延迟复制、数据丢失风险
