Redis 3.2.6 Sentinel部署

来源:互联网 发布:网络保护软件 编辑:程序博客网 时间:2024/05/01 15:18
CentOS 6.8
monitor:   192.168.1.100
master: 192.168.1.120
slave: 192.168.1.121
            192.168.1.122

1.安装redis

tar -zxvf redis-3.2.6.tar.gzmv redis-3.2.6 /usr/local/cd /usr/local/redis-3.2.6makemake install
最后会有一个warning:
Hint: To run 'make test' is a good idea ;)
如果想要make test 的话,可能会报错:
You need tcl 8.5 or newer in order to run the Redis test
解决方法:
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  tar -xzvf tcl8.6.1-src.tar.gzmv tcl8.6.1 /usr/local/  cd  /usr/local/tcl8.6.1/unix/  ./configure  make  make install
再去make test即可
启动redis服务
src/redis-server
启动redis客户端
src/redis-cli
2.编辑Master上的配置文件
vi redis.confbind 192.168.1.120# 开启守护模式  daemonize yes# 打开aof持久化  appendonly yes  # 每秒一次aof写  appendfsync everysec 
3.编辑Slave上的配置文件
vi redis.confbind 192.168.1.121(122)# 开启守护模式  daemonize yes# 打开aof持久化  appendonly yes  # 每秒一次aof写  appendfsync everysec# 指定所属的master  slaveof 192.168.1.120 6379  # 指定slave只读  slave-read-only yes
4.编辑sentinel.conf(三个节点下都要一样配置,master的sentinel配置在monitor上)
vi sentinel.conf# sentinel通讯端口port 26379# sentinel需要监控的master/slaver信息  2为投票机制sentinel monitor mymaster 192.168.1.120 6379 2# master被当前sentinel实例认定为失效的间隔时间sentinel down-after-milliseconds mymaster 10000# 当新master产生时,同时进行“slaveof”到新master并进行同步复制的slave个数# 在salve执行salveof同步时,将会终止客户端请求。# 此值较大,意味着“集群”终止客户端请求的时间总和和较大。# 此值较小,意味着“集群”在故障转移期间,多个salve向客户端提供服务时仍然使用旧数据。sentinel parallel-syncs mymaster 1# failover过期时间。当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failover失败。sentinel failover-timeout mymaster 60000
5.启动所有节点下的redis server
cd /usr/local/redis/src./redis-server /usr/local/redis/redis.conf
这里需要注意redis server启动时需要指定刚刚编辑好的conf文件
6.启动所有节点下的sentinel
./redis-sentinel /usr/local/redis/sentinel.conf
也是要指定编辑好的conf文件
7.查看master节点信息
./redis-cli -h 192.168.1.120 -p 6379 info Replication
8.查看任意slave节点信息

9.插入数据测试
Master:
./redis-cli -h 192.168.1.120 -p 6379192.168.1.120:6379> set name zzpOK192.168.1.120:6379> get name"zzp"
Slave:
./redis-cli127.0.0.1:6379> get name"zzp"127.0.0.1:6379> set name zzc(error) READONLY You can't write against a read only slave.
10.failover测试
将master节点关闭模拟宕机,
monitor:
# +sdown master mymaster 192.168.1.120 6379
显示master宕机,但是只有这一条状态
再看slave节点,也是一样,并没有进行之后的failover的选举
等半天没有任何动静之后,我再将master启动,发现master又回到了集群中

在网上查找了好久,找到几个类似的情况,解决方法:
在sentinel.conf 中加入 protected-mode no
如上重新配置之后再次进行测试
Master节点关闭:

可以看到failover开始,并进行选举121节点为master~
同时再回复原先的master,查看其节点信息

发现192.168.1.120已经从master,变为slave~


0 0