redis(2)

哨兵机制和集群

1、Sentinel(哨兵)

1.1 sentinel是redis的高可用性解决方案,有一个或多个sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器继续处理命令请求

如图所示:双环(server1)为主服务器,单环(server2,server3,server4)为从服务器

当server1的下线时长超过用户设定的下线时长上线时,Sentinel会对server1执行故障转移操作(分二步):

第一步:Sentinel会挑选server1属下的其中一个从服务器,并将这个被选中的从服务器升级为新的主服务器

第二步:sentinel会向server1属下的所有从服务器发送新的复制指令,让他们成为新的主服务器的从服务器,当所有从服务器都开始复制新的服务器时,故障转移操作执行完毕 另外:sentinel还会继续监视已下线的server1,并在它重新上线时,将它设置为新的主服务器的从服务器

1.2  启动并初始化Sentinel

2 集群

redis集群时redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,提供复制和故障转移功能

2.1 节点:节点之间以握手的方式

      节点的启动:节点会继续使用所有再单机模式中使用的配置信息

2.2 槽指派

redis cluster通过分片的方式来保存数据库中的键值对:集群的整个数据库被分为16384个slot(槽),数据库中的每个键都属于这16384个槽的其中一个,集群中的每个节点可以处理一个或最多16384个slot

当16384个槽都有节点在处理时,集群处于上线状态(ok);反之则集群处于下线状态(fail)

可以随意的分配槽范围给节点 ,如下:

cluster addslots 0 1 2 3 4 ... 5000

即将0至5000指派给相应节点 会将自己的负责的槽范围发送给集群中的其他节点

2.3 在集群中执行的命令

节点只能使用0号数据库,单机redis没有这个限制

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值