1、eg:如有A,B,C三个节点的集群,在没有复制模型的情况下,如果节点B失败了,那么整个集群就会以为缺少B节点所承担的哈希槽这个范围的槽而不可用。然而如果在集群创建的时候(或者过一段时间)我们为每个节点添加一个从节点A1,B1,C1,那么整个集群便有三个master节点和三个slave节点组成,这样在节点B失败后,集群便会选举B1为新的主节点继续服务,整个集群便不会因为槽找不到而不可用了。当然如果B和B1都down了,那集群还是不可用的。redis集群安装与配置1、redis集群安装1.1 redis安装1.1. 搭建前的准备工作 Redis集群是Redis3.0新加入的功能,其在源码的src目
2、录下有自带的集群搭建工具-redis-trib; 它是一个rb为后缀的文件,需要依赖ruby程序才能正常运行,在我们OWL的环境一般需要安装rubygems,需要下载下来后执行ruby setup.rb即可安装成功,再执行gem install redis后,即可正常使用redis-trib程序。 redis-trib程序可以完成创建新集群,检查集群和对集群进行重新分片的功能。注:如安装时提示no such file to load - rdoc/rdoc (LoadError),可打开 /.gemrc在最后加入 gem: -no-ri -no-rdoc.保存后再运行gem install r
3、uby,ruby setup.rb和gem install redis即可。安装依赖yum install gcc tclyum install -yrubyruby-develrubygemsrpm-build下载安装包wget http:/download.redis.io/releases/redis-3.0.5.tar.gz编译安装tar -zxvf redis-3.0.5.tar.gzcd redis-3.0.5make MALLOC=libcmake test -测试redis是否编译正确make install -将src/文件夹下的执行文件copy到/usr/local/bin
4、目录集群依赖gem install redis集群正常运作至少需要三个主节点,建议每个主节点至少有一个从节点,主从节点分开部署在不同机器上,每台机器可启动多个redis。 mkdir cluster-testcd cluster-testmkdir 7000 7001 修改配置文件redis.conf(redis-3.0.5目录下有样例)放到对应路径下port7000daemonize yeslogfile redis-server7000.logdbfilename 数据库名称dir 数据库存放目录appendonly yes 启动时优先加载日志记录appendfilenameappendo
5、nly7000.aofcluster-enabled cluster-config-filenodes7000.conf 同一台机器上名称不能相同cluster-node-timeout5000-配置daemonize yesport 7000bind 192.168.12.15loglevel noticelogfile /opt/cluster/logs/redis-server7000.logdbfilename dump7000.rdbdir /opt/cluster/db/appendonly yesappendfilename cluster-enabled yescluster-
6、config-file nodes7000.confcluster-node-timeout 5000-1.2 启动和停止redisredis-server /path/redis.conf查看redis进程ps -ef|grep redis1.3 redis集群1.3.1 集群创建./redis-trib.rb create -replicas 1(表示一个从节点) 192.168.12.15:7000 192.168.12.18:7000 192.168.12.19:7000 192.168.12.70:7000 192.168.12.15:7001 192.168.12.18:7001
7、192.168.12.19:7001 192.168.12.70:7001 1.3.2检查集群状态./redis-trib.rb check 192.168.12.15:7000#查看集群节点的相关信息 redis-cli -p 7000 -h 192.168.12.219 cluster nodescluster info2、Redis集群相关测试2.1 添加节点添加主节点./redis-trib.rb add-node 192.168.12.201:7000 指定主节点添加从节点./redis-trib.rb add-node slave -master-id 节点ID 192.168.1
8、2.201:【=集群扩容步骤=】1)./redis-trib.rb add-node 192.168.12.219:7002 192.168.12.201:2)./redis-cli -p 7000 -h 192.168.12.201 cluster nodes =master-id获取3)./redis-trib.rb add-node -slave -master-id 70173e348edec46ed4755d6a1d18238e091bc0ed 192.168.12.219:7003 192.168.12.201:4)./redis-trib.rb reshard 192.168.1
9、2.201: 例子如下:上述图的最后一步补充说明:./redis-trib.rb reshard 192.168.12.15:输入要移动的数量输入目标节点97a3a64667477371c4479320d683e4c8db5858b1.指定从哪写节点来移动keys到目标节点,输入的是all会从其他每个master上取一些哈希槽,也可以输入从指定节点槽迁移,输入done结束回车2.2 节点删除【=集群缩容步骤=】1) ./redis-trib.rb reshard 192.168.12.201:2) ./redis-cli -p 7000 -h 192.168.12.201 cluster no
10、des3) Slave:./redis-trib.rb del-node 192.168.12.219:7003 9290002b631b7b4d363168fa3283d02e06423f514)master:7002 70173e348edec46ed4755d6a1d18238e091bc0ed【添加节点异常处理方法】【从节点停用】./redis-cli -h 192.168.12.202 -p 7001 shutdown 2.3 主从切换从节点切换成主节点redis-cli -c -h 192.168.12.201 -p 7000 cluster failover redis-cli -c -h 192.168.12.15 -p 7001 cluster failover 蓝色为从节点IP2.4 改变从节点的主节点 redis-cli -c -h 192.168.12.201 -p 7000 cluster replicate 节点id redis-cli -c -h 192.168.12.18 -p 7001(从节点id) cluster replicate ea9bff3e9fa4d9030b93fa66b1bc6b75b6370f22(红色为主节点id)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1