1. 什么是 Redis?
Redis 是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存和存储需求。同时 Redis 的诸多高级功能使其可以胜任消息队列、任务队列等不同的角色。除此之外,Redis 还支持外部模块扩展,使其在某些场景下可以作为主数据库使用。
2. Redis 基础数据类型
String、Hash、List、Sorted List、Set 的常用命令、数据结构以及使用场景。
2. Redis 事务机制
Redis 事务及其相关命令:MULTI、EXEC、WATCH、UNWATCH、DISCARD
WATCH 命令及其原理
Redis 事务不支持回滚的原因
Redis 事务执行失败的三种场景:语法错误、执行期间错误、WATCH 命令乐观锁
3. Redis 持久化
Redis 两种持久化方式的原理:RDB 和 AOF
- RDB 的工作机制、触发方式。如何 fork 子线程进行内存 dump 操作?
AOF 的工作机制、触发方式。
- AOF 的重写机制
- 两种持久化方式的优缺点,以及如何选择持久化方式?
- Redis 的持久化的数据恢复流程。
4. Redis 内存淘汰策略
- 什么是 Redis 内存淘汰策略?
- Redis 的 8 种内存策略:noeviction、allkeys-lru、allkeys-lfu、allkeys-random、volatile-lru、volatile-random、volatile-lfu、volatile-ttl
LRU 在 Redis 中的实现
- Redis 的内存失效策略:主动删除、定期删除、定期扫描删除
5. Redis 集群
哨兵机制
6. 高级问题
Redis 的设计与实现
缓存一致性如何保障?三种缓存更新策略:旁路缓存、读写穿透、异步缓存写入
- 缓存击穿、缓存穿透、缓存雪崩
- 限流
任务队列、消息队列、阻塞队列
布隆过滤器
Redis 实现分布式锁
Redis 使用场景聚合