Redis多机实现

Background

为啥要有多机--------------1.容错 2.从服务器分担读压力。

主从结构一大难题------------如何保障一致性,对这个一致性要求不是很高,因为redis是用来做缓存的

同时我们要自动化进行故障转移-------哨兵机制,同时哨兵也可能crash,所以我们要引入哨兵集群的概念

同时redis还提供了分布式数据库解决方案--------redis集群

同步过程

 Redis多机实现_第1张图片

全量同步

     

Redis多机实现_第2张图片

增量同步

    Redis多机实现_第3张图片

所以我们要一个缓冲区来记录下断线的命令以及复制的offset 

Redis多机实现_第4张图片

Redis多机实现_第5张图片

Redis多机实现_第6张图片

Redis多机实现_第7张图片

Redis多机实现_第8张图片

哨兵集群

 

 Redis多机实现_第9张图片

 

Redis多机实现_第10张图片

实际上就是一个raft算法

Redis多机实现_第11张图片

 

redis集群

Redis多机实现_第12张图片

cluster meet加入集群

 

Redis多机实现_第13张图片

Redis多机实现_第14张图片

 命令执行

Redis多机实现_第15张图片

Redis多机实现_第16张图片

Redis多机实现_第17张图片

Redis多机实现_第18张图片

 

Redis多机实现_第19张图片

 选举主节点是raft算法

你可能感兴趣的:(redis原理学习,redis,数据库,缓存)