环境信息,三台机器,一台master,两台slave,每台机器上启动一个sentinel
master 192.168.1.106
slave1 192.168.1.102
slave2 192.168.1.103
为了方便放在每台机器的/root目录下面
1,下载redis稳定版 redis-3.0.6.tar.gz,首先安装master
1),解压,安装
tar -zxvf redis-3.0.6.tar.gz
make
makeinstall
2),启动master
./redis-server /root/redis-3.0.6/redis.conf
2,把redis-3.0.6目录下文件copy到slave机器上
scp -r redis-3.0.6/ root@slave1 192.168.1.102:/root
scp -r redis-3.0.6/ root@slave1 192.168.1.103:/root
3,修改slave下面的redis.conf配置
在文件后面加上
slaveof 192.168.1.106 6379
4,启动两台slave机器
./redis-server /root/redis-3.0.6/redis.conf
5.登陆master测试
./redis-cli
set name 'lily'
然后登陆slave机器
get name
6.编辑三台机器的sentinel.conf配置文件
sentinel monitor mymaster 192.168.1.106 6379 2
然后启动sentinel
./redis-sentinel /root/redis-3.0.6/sentinel.conf
./redis-cli -h 127.0.0.1 -p 26379 info sentinel 查看sentinel状态
显示如下
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
master0:name=mymaster,status=ok,address=192.168.1.106:6379,slaves=2,sentinels=3
可以看到集群的状态是ok
mastername 是 mymaster(jredis连接的时候要保持同步)
然后测试 master挂掉的情况
kill master
然后登上其余的slave,
运行命令 ROLE
发现103已经成为master,说明集群master已经完成切换
再启动刚才kill掉的master
发现 现在的role 是slave