分布式缓存总结
# Redis缓存持久化
- RDB持久化
- bgsave开始时会fork主进程得到子进程,子进程共享主进程的内存数据。完成fork后读取内存数据并写入 RDB 文件。
- AOF持久化
- Redis处理的每一个写命令都会记录在AOF文件
- 当redis重新启动后,会读取存储到磁盘的RDB文件或者AOF文件来更新数据
# Redis集群模式
- Redis 主从+哨兵模式
- 主从之间的数据同步有 全量同步,增量同步
- 哨兵可以监控Redis集群状态
- 当主节点宕机后,会自动选主,恢复故障
- Redis 分片集群
- 类似于 ES的分片集群
- 采用散列插槽的模式
- 数据通过hash运算绑定一个插槽
{a}num与a都在同一个插槽- key中包含"{}",且“{}”中至少包含1个字符,“{}”中的部分是有效部分。按照有效部分计算插槽。
- 一般同一个类型的 数据 加相同的{},可以放到到同一个插槽,进而访问到同一片,即放到一台服务器上,不用进行重定向
- 数据与插槽绑定,每个片给分配插槽,分片上的插槽可以通过
reshard进行转移 - 无论在哪一个结点访问数据都会自动路由到对应结点上
- 数据通过hash运算绑定一个插槽
- 集群伸缩
- 加入集群,转移插槽,删除插槽
- 当一个结点上有插槽时,不能直接删除,需要将插槽转移才能删除
- 加入集群,转移插槽,删除插槽
- 故障转移
- 分片集群不需要哨兵,可以互相之间进行心跳检测。当出现故障时,可进行自动故障转移。
上次更新: 2023 07 3
