第一层:基础能力层
- Redis 核心运行机制
○ 单线程模型: 单线程串行执行命令,避免了大量锁竞争。
○ I/O 多路复用: 通过 epoll/kqueue/select机制,Redis 能同时监听和处理大量客户端操作。
○ 内存模型: 在内存中使用了高效的数据结构来存储数据。(字符串、哈希、列表、集合、有序集)。
○ 内存访问优势: 在内存中读写数据,避免了频繁磁盘 I/O,因此具备极低延迟和高吞吐能力。 - Redis 服务配置:网络与访问控制、认证与权限、内存分配与淘汰策略、过期删除策略、数据持久化
- 数据类型与命令体系:数据类型、数据结构、命令集基础/Bitmap/HyperLog/Geo/Stream/PubSub
- 原子能力与并发控制 :
○ MULTI / EXEC:把事务中的命令按顺序一次性执行,执行期间不会被其他客户端命令插入。
○ WATCH:乐观锁控制,如果其他客户端修改了监视的 key ,那么当前事务的 EXEC 会失败。
○ Lua 脚本: Lua 脚本会在 Redis 中作为一个整体原子执行。
○ Pipeline: 把多条命令一次性发送给 Redis,减少网络往返次数,但它本身不保证事务原子性。 - 基础风险与治理概念
○ 大 Key:指存储了过多数据的键,其读写操作耗时长,容易拖慢整体性能。
○ 热 Key:指在短时间内被极高频率并发访问的键,可能导致单点负载过重甚至系统崩溃。
○ 内存碎片:指内存分配与释放后产生的不连续、无法被有效利用的小块空闲内存空间。
○ 阻塞命令:指执行耗时较长或需要等待资源的Redis命令,会阻塞后续所有命令的处理。
第二层:开发接入层
- 客户端工具体系 :
○ RedisTemplate:通用型 Redis 操作模板,适用于基本数据类型操作,但配置与序列化繁琐。
○ StringRedisTemplate:RedisTemplate<String, String>, 适用于String key/value
○ Redisson:基于 Redis 的高级功能客户端,包括分布式锁、布隆过滤器、限流器等增强能力。
○ Lettuce:Redis 的现代高性能 Java 客户端,更适合高并发和复杂生产环境。 - 序列化与数据转换 :
○ Key 序列化:键 Key 如何被编码,通常只会用 String序列化。
○ Value 序列化:值 Value 如何被编码,采用 JSON/JDK/自定义序列化方式。
○ 自定义序列化: 如果追求高性能的话,就会自定义序列化。 - 连接管理:连接池配置、最大连接数、最小空闲连接、超时重试策略、连接复用、阻塞与非阻塞通信
- Redis 能力接入:Pipeline 的使用、Lua 脚本执行方式、事务命令封装调用、批处理与网络优化
- 工程接入规范:Key 命名规范、统一缓存工具封装、统一异常处理、统一日志规范、缓存操作模板设计
第三层:业务方案层
- 数据一致性方案:先删缓存再更新数据库、先更新数据库再删缓存、延迟双删、旁路缓存一致性控制
- 缓存异常防御 :
○ 存在问题:缓存穿透、缓存击穿、缓存雪崩
○ 解决方案:布隆过滤器、空值缓存、随机过期时间、热点 Key 处理、缓存预热 - 并发控制方案:分布式锁、幂等控制、秒杀库存扣减、Lua 原子扣减、并发读写控制、重复提交防护
- 流量控制与系统保护:限流、熔断、降级、接口保护、请求削峰、后端保护
- 高并发场景演练:缓存穿透演练、热点 Key 演练、秒杀场景演练、库存一致性演练、锁失效与超时演练
第四层:高可用与分布式架构层
- 主从复制 + 哨兵架构
○ 高可用基础架构:主从复制、读写分离、复制延迟、主从切换窗口、故障转移
○ 哨兵高可用机制:哨兵模式、主观下线、客观下线、领导者选举、自动故障转移、配置刷新 - Cluster 架构
○ 基本概念:Redis Cluster、数据分片、Hash Slot、Gossip 协议、去中心化路由、节点扩缩容
○ 路由与重定向:MOVED / ASK 重定向原理、槽位定位、请求转发、客户端重试、集群重平衡
○ 多 Key 跨槽:跨槽问题、Hash Tag、同槽路由设计、批量操作限制、事务/Lua 的约束
○ 扩展能力:数据分片、水平扩容、多主并行处理、读扩展、写扩展、集群负载分担 - 集群模式客户端适配
○ SpringBoot 整合 主从复制 + 哨兵架构
○ SpringBoot 整合 Cluster 集群
第五层:治理与运维层
● 性能与运行状态监控 :QPS/OPS 监控、命中率分析、连接数监控、连接堆积分析、主从延迟监控
● 内存治理与容量规划 :内存监控与碎片分析、内存容量评估、分片规划
● 命令执行风险治理 :阻塞命令治理、慢日志分析
● 持久化与可靠性评估:持久化风险分析(RDB 风险、AOF 重写风险)、数据丢失窗口分析、恢复时间评估