Redis集群

第一种主从模式(master/slave)

主从模式提高了高可用性,主库进行读写操作,当数据发生变化时自动同步给所有从库;从库进行读操作,并接受主库同步过来的数据;主库挂掉后redis将不再提供写服务,但可以保证读服务。

第二种哨兵模式(Sentinel)

哨兵模式在主从模式基础上,进一步提高了可用性,增加了对主库的监控,如果主库挂了,哨兵会在从库中选取一个修改其配置文件,替代主库,先前的主库恢复后会作为从库提供读服务。值得一提的是哨兵也是可能挂掉的,所以哨兵也可以搭建成集群模式,多个哨兵之间互相监控。最后,哨兵和redis最好不要部署在同一个服务器上,避免一起挂掉.

第三种集群模式(cluster)

集群模式在哨兵功能的基础上,提高了redis的扩展性,哨兵模式每个redis实例中都含有全量数据,然而当数据量变大时,需要给所有实例进行扩容,这是不切实际的。因此集群模式采用分片储存,将数据分开保存,即要将不同的key分散放置到不同的redis中,所以集群模式引入了哈希槽的概念,Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。当需要增加redis节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了;当需要移除redis节点时,只需要把移除节点上的哈希槽挪到其他节点就行了。另外每个主库节点中都存有这个集群其他所有主从节点的信息,它们之间通过ping-pong判断对方是否可以连接,当有一个主节点认为某个主节点失效,那这个主节点被标记为主观下线,当有多个主节点都这么认为,那这个主节点就被标记为客观下线(与哨兵原理类似,都是用投票机制)。客观下线后,集群从该主节点的从节点中选择一个切换成主节点替换前者。

ping-pong

是一种数据传输技术,目的是提高处理效率。上级模块可以不去等待下级模块处理结束,而是将发送信息放到ping路缓存中,然后继续执行自己的内部业务,下级模块处理完成将结果保存在pong路中,这样上级模块去pong路取下级模块的相应结果,下级模块在ping路中取上级模块发送的数据。

redis-cluster分片集群模型

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值