深入浅出分布式缓存:原理与应用
文章目录
- 概述
- 缓存分片算法
-
- 1. Hash算法
- 2. 一致性Hash算法
- 3. 应用场景
- Redis集群方案
-
- 1. Redis 集群方案原理
- 2. Redis 集群方案的优势
- 3. Java 代码示例:Redis 集群数据定位
- Redis 集群中的节点通信机制:Gossip 协议
-
- Redis 集群的节点通信:Gossip 协议
- Redis 集群的节点通信流程
- Redis 集群中的消息类型
- Gossip 协议的消息结构
- Redis 集群的高可用性与容错性
- 小结
- 请求分布式缓存的路由
-
- 1. 槽(Slot)信息的存储与解析
- 2. `clusterState` 结构与节点的槽映射
- 3. Redis 客户端的数据路由过程
- 4. 数据迁移期间的 ASK 重定向机制
- Redis 集群路由机制的优势
- 缓存节点的扩展和收缩
-
- 1. 缓存节点的扩展
-
- 1.1 新节点加入集群
- 1.2 槽分配和数据迁移
- 2. 缓存节点的收缩
-
- 2.1 槽数据迁移
- 2.2 节点下线通知
- 缓存故障的发现和恢复
-
- 故障检测机制:主观下线与客观下线
-
- 1. 主观下线
- 2. 客观下线
- 故障恢复:主节点选举与自动故障转移
-
- 1. 资格检查
- 2. 触发选举
- 3. 发起选举请求
- 4. 投票选举
- 5. 广播新主节点信息
- 小结
概述
分布式缓存系统是为了解决高并发场景中数据访问的速度瓶颈,将频繁访问的数据存储在内存中,以便迅速响应应用程序的查询请求。
-
缓存类型:分布式缓存分为进程内缓存和进程外缓存。
- 进程内缓存:在应用程序的JVM内,缓存大小受限于单机的内存,不适合超大规模数据的存储。
- 进程外缓存:独立于应用程序的JVM,以单独服务的形式存在,可在多台缓存服务器上进行水平扩展,适合分布式应用场景。
-
分布式缓存的特点:
- 独立性:分布式缓存系统作为一个独立服务,不依赖于应用实例,与应用相分离。
- 共享性