1。集群架构:
解释:
- <李>所有的复述,节点彼此互联(乒乓球机制),内部使用二进制协议优化传输速度和带宽。李> <>李节点的失败是通过集群中超过半数的节点检测失效时才生效。<李> 李>客户端与复述,节点直连,不需要中间代理层。客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可李> <>李redis-cluster把所有的物理节点映射到(0 - 16383)槽上,集群负责维护李>
复述,集群中内置了16384个哈希槽,当需要在复述,集群中放置一个键-值时,
复述,先对关键使用crc16算法算出一个结果,然后把结果对16384求余数,
这样每个关键都会对应一个编号在0 - 16383之间的哈希槽,复述,会根据节点数量大致均等的将哈希槽映射到不同的节点
<强>误区解释强>:这里的集群和主从复制不同,这里的集群中所有的都是母亲,都有单节点顾长官问题,而主从复制只是解决单点故障问题,
如果想让集群模式下午单点故障问题,需要给每一个主人进行主从复制。
2。redis-cluster投票容错
- <李>集群中所有主参与投票,如果半数以上主节点与其中一个主节点通信超过(cluster-node-timeout)认为该主节点挂掉。李>
集群不可用状态的判断:
- <李>如果集群任意主挂掉,且当前主人没有奴隶,则集群进入失败状态。也可以理解成集群的(0 - 16383)槽映射不完全时进入失败状态。李> <李>如果集群超过半数以上主挂掉,无论是否有奴隶,集群进入失败状态。李>
3。复述,集群的搭建
①ruby的安装
由于集群管理工具(redis-trib。rb)是使用ruby脚本语言编写的,所以需要ruby的环境
第一步:安装ruby
[root@hdp01 bin2] # yum安装ruby
[root@hdp01 bin2] # yum安装rubygems
第二步:将redis-3.0.0。宝石文件上传到linux系统
第三步:安装ruby和复述,接口
root@hdp01 ~ #宝石redis-3.0.0安装。宝石
第四步:将redis-3.0.0包下src目录中的以下文件拷贝到redis19 redis-cluster/
第五步:查看是否拷贝成功
第五步:复制复述,服务到其他机器中
(root@hdp01复述)# scp/xxx/redis-3.0.0 - r hostname02: ~/应用(root@hdp01复述)# scp/xxx/redis-3.0.0 - r hostname03: ~/应用
第七步:启动三台机器
(root@hdp01复述)# redis-server redis.conf(三台机器中都开启)
第九步:创建集群
[root@hdp01 redis-cluster) #。/redis-trib。rb创建,副本1 \
192.168.130.128:6379 \
192.168.130.129:6379 \
192.168.130.130:6379 \
祝辞祝辞祝辞创建集群
连接节点192.168.242.137:7001:好
连接节点192.168.242.137:7002:好
连接节点192.168.242.137:7003:好
连接节点192.168.242.137:7004:好
连接节点192.168.242.137:7005:好
连接节点192.168.242.137:7006:好
祝辞祝辞祝辞6节点上执行散列槽分配……
使用3大师:
192.168.242.137:7001 192.168.242.137:7002
192.168.242.137:7003
添加副本192.168.242.137:7004 192.168.242.137:7001
添加副本192.168.242.137:7005 192.168.242.137:7002
添加副本192.168.242.137:7006 192.168.242.137:7003
M: 8240 cd0fe6d6f842faa42b0174fe7c5ddcf7ae24 192.168.242.137:7001
槽:0 - 5460(5461位)主
M: 4 f52a974f64343fd9f1ee0388490b3c0647a4db7 192.168.242.137:7002
槽:5461 - 10922(5462位)主
M: cb7c5def8f61df2016b38972396a8d1f349208c2 192.168.242.137:7003
槽:10923 - 16383(5461位)