欢迎您, 来到 宁时修博客.^_^

Codis 3.x集群搭建与使用_05

2018/07/11 言则行 Codis 579
Codis 3.x集群多个 Redis Server Group 与 Codis Sentinel

一、多个Redis Server Group

    前面测试,我就只做了一个 redis server group,现在再做一组。


    注意:启动第二组redis server group之前,最好把之前的sentinel关闭,三个sentinel节点都关闭,以免两个redis server group里主从关系发生混乱。

[root@codis-redis ~]# ps -ef|grep sentinel
root       1584      1  0 14:49 ?        00:00:10 /usr/local/codis/bin/codis-server 0.0.0.0:26379 [sentinel]
root       1654    847  0 15:53 pts/0    00:00:00 grep --color=auto sentinel
[root@codis-redis ~]# kill 1584


    redis.conf配置:

[root@codis-redis ~]# cd /usr/local/codis/conf/
[root@codis-redis conf]# cp redis.conf redis_6380.conf
[root@codis-redis conf]# vim redis_6380.conf 
port 6380
pidfile "/tmp/redis_6380.pid"
logfile "/usr/local/codis/log/redis_6380.log"
dbfilename "dump_6380.rdb"

root@codis-redis conf]# /usr/local/codis/bin/codis-server /usr/local/codis/conf/redis_6380.conf

    其余redis节点也这么做,主从不需要在redis配置文件里做,当把redis加入codis后,会把group里第一个redis作为master,其余作为slave。

    

    管理界面:

20180711155816.png


    将192.168.2.24:6380、192.168.2.25:6380、192.168.2.26:6380都加入 Group2。


    20180711162237.png


    master是192.168.2.24:6380,两个slave:192.168.2.25:6380、192.168.2.26:6380


    然后分配slots:

20180711163535.png


    显示:lkjj.png





    

二、启用sentinel

    还是前面那个配置,无需配置监控组,codis会自动设置的。三个节点都一样配置。

[root@codis-redis conf]# vim sentinel.conf 
bind 0.0.0.0
protected-mode no
# sentinel节点的端口
port 26379

# 后台运行
daemonize yes

# 日志
logfile "/usr/local/codis/log/sentinel.log"

# sentinel工作目录
dir "/tmp/redis"


    三个sentinel节点都启动:

[root@codis-redis conf]# /usr/local/codis/bin/codis-server /usr/local/codis/conf/sentinel.conf --sentinel


    管理界面:

20180711164224.png


三、测试

    当前状态:

ddd.png


    将两个group里的redis-master都休眠60秒:

/usr/local/codis/bin/redis-cli -p 6379 -h 192.168.2.24 DEBUG sleep 60
/usr/local/codis/bin/redis-cli -p 6380 -h 192.168.2.24 DEBUG sleep 60

    


    等待1分钟后,再去管理界面查看:

ddfff.png

    192.168.2.25上的两个redis都成为各自group里的master了,写入测试下:

[root@codis-redis01 ~]# /usr/local/codis/bin/redis-cli -h 192.168.2.25 -p 6379
192.168.2.25:6379> set myname wahaha
OK
192.168.2.25:6379> get myname
"wahaha"
192.168.2.25:6379> exit
[root@codis-redis01 ~]# /usr/local/codis/bin/redis-cli -h 192.168.2.25 -p 6380
192.168.2.25:6380> set mysql 5.6.28
OK
192.168.2.25:6380> get mysql
"5.6.28"
192.168.2.25:6380> exit

    

    redis-slave上查看:

    192.168.2.24

[root@codis-redis ~]# /usr/local/codis/bin/redis-cli -h 192.168.2.24 -p 6379
192.168.2.24:6379> get myname
"wahaha"
192.168.2.24:6379> set myage 24
(error) READONLY You can't write against a read only slave.
192.168.2.24:6379> exit
[root@codis-redis ~]# /usr/local/codis/bin/redis-cli -h 192.168.2.24 -p 6380
192.168.2.24:6380> get mysql
"5.6.28"
192.168.2.24:6380> set myage 24
(error) READONLY You can't write against a read only slave.
192.168.2.24:6380> exit


   192.168.2.26

[root@codis-redis02 ~]# /usr/local/codis/bin/redis-cli -h 192.168.2.26 -p 6379
192.168.2.26:6379> get myname
"wahaha"
192.168.2.26:6379> set myphone 1355555
(error) READONLY You can't write against a read only slave.
192.168.2.26:6379> exit
[root@codis-redis02 ~]# /usr/local/codis/bin/redis-cli -h 192.168.2.26 -p 6380
192.168.2.26:6380> get myname
(nil)
192.168.2.26:6380> get mysql
"5.6.28"
192.168.2.26:6380> set myphone 1355555
(error) READONLY You can't write against a read only slave.
192.168.2.26:6380> exit


    虽然管理界面上的 “synced”没有改,但是redis主从已经改变,并且数据同步了。记住,排在Redis Server Group内第一位的是Master。

    




点赞
说说你的看法

所有评论: (1)

# 加入组织

1、用手机QQ扫左侧二维码

2、搜Q群:1058582137

3、点击 宁时修博客交流群