搭建redis集群

工作原理
通过crc16算法得出一个槽(slot)的值 然后根据槽值去存储数据
变量名和算法去做哈希计算,得出一个数字,然后用数字去和16384取模
最后根据的出来的模去存储数据
在这里插入图片描述
当其中一台主节点宕机后,它的从会自动升级成主,当宕机的主修复好后,它会选择一个拥有从最少的主当它的从,如果拥有的从数量一样,就随机找一个.

#部署环境
最少需要六个节点(3 master,3 slave)
yum -y install rubygems
下载ruby依赖,使ruby支持redis,下边是地址
https://rubygems.org/gems/redis/versions
在redis源码包的src目录下有一个redis-trib.rb的脚本(可以用来管理集群),把它放到PATH环境下,方便使用
在每台的redis服务器上开启cluster(修改配置文件)
cluster-enabled yes #启用集群功能
cluster-config-file nodes-6379.conf #存储集群信息文件
cluster-node-timeout 5000 #连接超时时间单位毫秒

脚本的使用方法
#主库从库是随机的,一般主库是最前边的几台机子
#创建集群
redis-trib.rb create–replicas 1(定义每台主库从库的个数) ip地址:端口 ip地址:端口 …

#查看集群简单信息
redis-trib.rb info ip地址:端口(随便集群中某一台主机)

#查看集群详细信息
redis-trib.rb check ip地址:端口

#添加master服务器(不指定主机角色,默认新主机为master)
redis-trib.rb add-node 要添加的ip:端口 ip地址:端口(随便集群中某一台主机)

#重新分片(新添加的master是没有hash槽的,所以要手动给它槽 )
要移出多少hash槽个数
要接受的hash槽主机ID
移出hash槽主机ID(可以一个一个加,done结束,也可以使用all)
redis-trib.rb reshard ip地址:端口(随便集群中某一台主机)

#添加slave服务器
#如果不指定主节点的id的话,会把新节点随机添加为从节点最少的主库
redis-trib.rb add-node --slave [–master-id id值] 要添加的ip地址:端口 ip地址:端口(随便集群中某一台主机)

#移除slave主机
#从服务器没有hash槽,所以可以直接移除
#移除时指定从服务器的id值
#移除完后会停止被移除主机的redis服务
redis-trib.rb del-node ip地址:端口(随便集群中某一台主机) id值

#移除master服务器和移除slave服务器差不多
#需要先释放占用的hash槽,用重新分片的办法,把hash槽分到别的主机上

#移除master后hash槽可能分配的不均衡,使用下面的命令重新分配hash槽
redis-trib.rb rebalance ip地址:端口(随便集群中某一台主机)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值