Redis集群(Redis-Cluster)

           redis集群方案

Redis集群的特点:

   1.支持动态扩展,应对高并发
   2.满足高可用,应对故障迁移
   3.内存数据的扩容,应对海量数据


主从模式

Redis -- 主(Master)     Redis -- 从(Slave)


Redis集群(Redis-Cluster)_第1张图片
读写分离、主从同步、主从切换

主从模式只解决了我们的高并发问题,但是主从切换是不够及时的,需要运维人员手动切换。通过(keeplive)第三方进行切换,降低系统的可用性。存在数据丢失问题,并没有很好的解决故障迁移


哨兵模式(Sentinel)

Redis集群(Redis-Cluster)_第2张图片

优点:
基于主从模式,所有主从的优点,哨兵模式都有
主从模式可以自动切换,系统更健壮,可用性更高
缺点:
但是哨兵模式很难扩容,在集群容量达到上限的时候扩容是很复杂的


Cluster集群

Redis集群(Redis-Cluster)_第3张图片
去中心化,没有固定的中心主节点,一个请求过来可以到任何一个服务器上。解决了哨兵和主从不足的地方。

Cluster集群---每个节点存储数据的同事,还要保持其他节点的信息,节点之间相互通信,用户请求任意节点,都可以把请求转发到其他节点做处理。不同的节点行的数据可以是不同的,可以方便的进行动态扩容()

           redisRedis---Cluster简述

Redis集群(Redis-Cluster)_第4张图片

分布存储机制---槽;

默认 一个集群 16384个槽。可以解决动态扩容和动态缩容


Redis集群(Redis-Cluster)_第5张图片

容错机制--投票

故障发现:
及时发现故障,半数以上节点,ping请求超时,标记节点为fail

故障迁移:
被标记为fail的主节点,要从节点变为主节点,新的槽数据,就发送到这里进行处理

Redis集群(Redis-Cluster)_第6张图片

           redisRedis-Cluster环境搭建

Ruby脚本语言

           redisRedis-Cluster

你可能感兴趣的:(Redis集群(Redis-Cluster))