码迷,mamicode.com
首页 > 其他好文 > 详细

Redis5以上版本伪集群搭建(高可用集群模式)

时间:2019-07-02 19:19:57      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:clust   sdn   保护模式   位置   设置redis   moni   vim   客户端   指定   

redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用一台机器(可以多台机器部署,修改一下ip地址就可以了)部署6个redis实例,三主三从,搭建集群的步骤如下:

第一步:在第一台机器的/usr/local/redis下创建文件夹redis-cluster,然后在其下面创建6个文件夹如下:

mkdir -p /usr/local/redis/redis-cluster

进入redis-cluster目录,创建6个文件夹

mkdir 7001 7002 7003 7004 7005 7006

第二步:把之前的redis.conf配置文件copy到7001下,修改如下内容:

cp /usr/local/redis/redis-5.0.5/redis.conf  /usr/local/redis/redis-cluster/7001

说明:redis-5.0.5为解压的源码包

修改如下配置:

 1 daemonize yes                           //redis后台运行
 2 port 7001                    (分别对每个机器的端口号进行设置)
 3 pidfile  /var/run/redis_7001.pid         //pidfile文件对应7000,7002,7003...7006
 4 cluster-enabled  yes                     //开启集群  把注释#去掉
 5 cluster-config-file  nodes-7001.conf     //集群的配置  配置文件首次启动自动生成 7001,7002,7003...7006
 6 cluster-node-timeout  5000             //请求超时  设置5秒够了
 7 appendonly  yes        //aof日志开启      有需要就开启,它会每次写操作都记录一条日志
 8 bind 127.0.0.1                (去掉bind绑定访问ip信息)
 9 protected-mode no               (关闭保护模式)
10 #dir /usr/local/redis/redis-cluster/7001/ (指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据,若该配置 不存在,请自行添加)

如果要设置密码需要增加如下配置:

11 requirepass xxx (设置redis访问密码)
12 masterauth xxx (设置集群节点间访问密码,跟上面一致)

第三步:把修改后的配置文件,copy到8002-8006,修改第2、3、5项里的端口号,可以用批量替换:

先复制:

1 cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7002
2 cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7003
3 cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7004
4 cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7005
5 cp /usr/local/redis/redis-cluster/7001/redis.conf /usr/local/redis/redis-cluster/7006

然后分别到对应的目录下 把redis.conf  执行 vim  

%s/源字符串/目的字符串/g 
:%s/7001/7002/g
:%s/7001/7003/g
:%s/7001/7004/g
:%s/7001/7005/g
:%s/7001/7006/g

把7001替换为7002

全局替换  和 目录保持一致, 比如目录是 7003则 替换为7003

第四步:分别启动6个redis实例,然后检查是否启动成功

1 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7001/redis.conf
2 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7002/redis.conf
3 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7003/redis.conf
4 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7004/redis.conf
5 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7005/redis.conf
6 /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/7006/redis.conf

查看是否启动成功

使用ps-ef|grep redis 看下是否启动成功6个节点

ps -ef|grep redis

技术图片

第五步:用redis-cli创建整个redis集群(redis5以前的版本集群是依靠ruby脚本redis-trib.rb实现)

执行命令

/usr/local/redis/bin/redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1

说明:redis 5.x的集群创建不需要ruby环境了 

    --cluster-replicas 1 命令的意思是创建master的时候同时创建一个slave

会创建一个3master 3slaver的集群

技术图片

输入yes

技术图片

看到这说明集群都创建完了

第七步:验证集群:

1)连接任意一个客户端即可:

./redis-cli -c -a xxx -h 192.168.5.100 -p 7001

提示:-a访问服务端密码,-c表示集群模式,指定ip地址和端口号(若没有密码,-a xxx可省略)

执行此命令:

打开端口为7001的客户端 set一个值

./redis-cli -c -p 7001

技术图片

退出该节点,进入7002端口:

技术图片

发现,7002端口也可以取值

 2)进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表)

技术图片

技术图片

3)进行数据操作验证

4)关闭集群则需要逐个进行关闭,使用命令:(模板)

/usr/local/redis/src/redis-cli -a xxx -c -h 192.168.0.60 -p 8001 shutdown

执行如下命令:

/usr/local/redis/bin/redis-cli -c -p 7001 shutdown

技术图片

技术图片

说明7001已关闭

 提示:在搭建集群后,依然可以进行主从复制的操作,备份数据。

 

 

参考:

https://www.jianshu.com/p/8045b92fafb2

https://blog.csdn.net/qq_36514588/article/details/83856795

https://blog.csdn.net/woyixinyiyi/article/details/87967911

https://blog.csdn.net/hoopopo_wll/article/details/84925563

https://my.oschina.net/ruoli/blog/2252393 (redis5 提供了关闭集群的工具)

在这里非常感谢以上作者的劳动果实。

Redis5以上版本伪集群搭建(高可用集群模式)

标签:clust   sdn   保护模式   位置   设置redis   moni   vim   客户端   指定   

原文地址:https://www.cnblogs.com/116970u/p/11122331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!