问:为什么使用redis cluster 而不使用redis 哨兵机制?
答:哨兵机制主节点如果挂掉虽然无需人为手动设置从节点,他能够自己从从节点找出新的主节点但是主节点恢复后,原来的主节点会变成从节点。使用redis cluster实现了多个哨兵机制的原理,每台付服务器上面都有一个主节点和多个从节点,这样即使有一台服务器挂掉也不会影响其他两台的使用,大大减少了系统并发导致的系统奔溃的灾难。
话不多说开整!!!!!
第一步:安装redis(相信自己可以搞定)
假设你安装完了.......
(1)一般redis-server 默认安装地址在user/bin下面
第二步:设置思路
可以看出来每一台服务其上面都有其他服务器的从节点,接下来开始分配服务为器
第三步设置思想:
第一台:
192.168.1.102:(master)
8001(master) 8004(master1-slave) 8007 (master2-slave)
第二台:
192.168.1.103(master1)
8002(master) 8005(master-slave) 8008(master2-slave)
第三台:
192.168.1.104 (master2)
8003(master) 8006(master1-slave)8009(master-slave)
第四步开始执行过程:
注:所有目录创建在 /usr/local/redis‐cluster/**** 便于管理
(1)创建文件夹:
第一台:
mkdir -p /usr/local/redis‐cluster/{8001,8004,8007}
第二台:
mkdir -p /usr/local/redis‐cluster/{8002,8005,8008}
第三台:
mkdir -p /usr/local/redis‐cluster/{8003,8006,8009}
(2)复制redis.conf文件到这些目录下面,每台服务器都要执行(执行3X3=9遍)
注:“*” 用上级文件名称中对应的数字
cp /usr/bin/redis/redis.conf /usr/local/redis-cluster/800*/
(3)大张旗鼓的改每个文件里的配置信息:(修改3X3=9个文件)
vim /usr/local/redis-cluster/800*/redis.conf
(4)固定修改文件为:(修改3X3=9个文件)
dir /usr/local/redis‐cluster/800*/
cluster‐config‐file nodes‐800*.conf
----放开
cluster-enabled yes---添加集群主从关系(老版本)
slaveof <masterip>(中间空格)<masterport>
--新版本是
replicaof <masterip> <masterport>
第五步:假设你都改完了(very good)
启动:(在执行9遍)
/usr/bin/redis-server /usr/local/redis-cluster/800*/redis.conf
(1)查询你的杰作:
ps -ef|grep redis
----成功标识标识
吧啦吧啦... (cluster) 后面有cluster
诺结果就是这样子的:
警告!警告!警告!关闭防火墙,或者放开相关端口
你应该会用到:关闭防火墙,或者打开所有端口(每个服务器都要查看):
需要执行:(3X3X3X3= ????遍)
查看防火墙端口是否开启:firewall-cmd --query-port=808*/tcp
添加防火墙开启端口:firewall-cmd --permanent --add-port=808*/tcp
重启防火墙:firewall-cmd --reload
第六步:致此你的任务快要完成了,剩下的结交给服务器吧!
/usr/bin/redis-cli --cluster create --cluster-replicas 2 192.168.1.102:8001 192.168.1.103:8002 192.168.1.104:8003 192.168.1.102:8004 192.168.1.103:8005 192.168.1.104:8006 192.168.1.102:8007 192.168.1.103:8008 192.168.1.104:8009
相关参数介绍
1.create:创建一个集群环境host1:port1 ... hostN:portN--cluster-replicas 【arg】 :arg表示几个从节点(这里肯定是2了,三主二从嘛)2.call:可以执行redis命令3.add-node:将一个节点添加到集群里,第一个参数为新节点的ip:port,第二个参数为集群中任意一个已经存在的节点的ip:port4.del-node:移除一个节点5.reshard:重新分片6.check:检查集群状态
第七步:等待执行结果,执行时间和服务器性能有关,反正我的很慢
成功的界面可以搜一搜,反正我还没执行完,博客都写完了。。。。
有问题的可以私我!
----------------------------------------------------------------------------------------------------------------------------
你有可能会无休止的等下去,就和我一样,其实执行到最后用不了5秒
解决方案:
结果展示: