Redis集群


Redis集群

历史

为了解决单机故障,采取主从模式
主从模式主机挂了,需要人为将slave节点换成master节点,然后引入哨兵模式,它能自动换节点。
但以上模式都是每个服务存储所有数据,所以redis cluster就诞生了,实现数据分片存储,此外还有Twemproxy、Codis等也是分片存储

主从模式


优点: 主从结构具有读写分离,提高效率、数据备份,提供多个副本等优点。
不足: 不具备自动容错和恢复功能,主节点故障,集群则无法进行工作,可用性比较低,需要人工手动干预。
主数据库崩溃时,需要手动切换从数据库成为主数据库:

在从数据库中使用SLAVE NO ONE命令将从数据库提升成主数据
启动之前崩溃的主数据库,然后使用SLAVEOF命令将其设置成新的主数据库的从数据库,同步数据

哨兵模式


哨兵模式还是主从复制,只是在主节点挂掉之后,多了一个竞选机制:从所有的从节点竞选出新的主节点。竞选机制的实现,是依赖于在系统中启动一个sentinel进程。
哨兵也可以有多个,这样哨兵也能互相监控
优点:解决了主从模式中master故障不可以自动切换故障的问题
不足:只有主机接收处理请求,所有集群存储全量数据,浪费空间。投票选举时,未选出主机,这时集群是保护机制,禁止写操作。

Redis Cluster


集群完全去中心化,采用多主多从;所有的redis节点彼此互联(PING-PONG机制)
客户端与 Redis 节点直连,不需要中间代理层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。
每一个分区都是由一个Redis主机和多个从机组成,分片和分片之间是相互平行的。
每一个master节点负责维护一部分槽,以及槽所映射的键值数据;集群中每个节点都有全量的槽信息,通过槽每个node都知道具体数据存储到哪个node上。

参考:https://mp.weixin.qq.com/s/4r5ZG7FQxXwSKxJzwyuLog


  目录