redis主从配置与sentinel配置

1.linux 环境下redis安装,运行,关闭

1.1.安装 

wget http://download.redis.io/releases/redis-2.8.19.tar.gz 
tar xzf redis-2.8.19.tar.gz
cd redis-2.8.19
make
make install 
cp redis.conf /etc/

1.2.运行 

加载配置文件并后台运行

redis-server /etc/redis.conf & 

1.3 关闭redis服务  

redis-cli shutdown 

可指定端口关闭 

redis-cli -p 6378 shutdown  

redis服务关闭后,缓存数据会自动dump到硬盘上,硬盘地址为redis.conf中的配置项dbfilename dump.rdb所设定 

强制备份数据到磁盘,使用如下命令 

redis-cli save
redis-cli -p 6380 save

 

2.主从配置 

角色             ip                     redis       sentinel 
master     192.168.11.212     6379        26379
从1          192.168.11.213     6379        26379
从2          192.168.11.201    6379        26379 

2.1从服务器 

vi /etc/redis.conf 

#做如下修改,其他配置保持默认即可。注意实际环境下127.0.0.1必须替换为实际ip 

slaveof 192.168.11.212 6379  

#从1修改此值为50,默认是100

slave-priority 50 

2.2主服务器

redis.conf  默认 

 

3配置sentinel 

3.1配置示例 

#这里都设置为监控master 

sentinel monitor mymaster 192.168.11.212 6379 2 
sentinel down-after-milliseconds mymaster 30000 
sentinel parallel-syncs mymaster 1 
sentinel failover-timeout mymaster 180000

3.2启动sentinel  

redis-server sentinel.conf --sentinel 

 

当输入写入master时,从自动同步。

如果未启动sentinel,当master fail over,集群无法使用;如果启动了sentinel,当master fail over时,从1优先被选举为master ,集群自动恢复。

 

注意:当2台机器作为主从时,

sentinel的如下配置项有所不同,最后一个数字配置为1

sentinel monitor mymaster 192.168.11.212 6379 1

 

如果master(192.168.11.212)意外宕机,需要slave(192.168.11.201)变为master时,需要在slave(192.168.11.201)机器的redis.conf中配置如下

 slave-read-only no

此时,slave才可能变为master,

[5367] 17 Sep 14:22:53.827 # +switch-master mymaster 192.168.11.212 6379 192.168.11.201 6379
[5367] 17 Sep 14:22:53.828 * +slave slave 192.168.11.212:6379 192.168.11.212 6379 @ mymaster 192.168.11.201 6379
[5367] 17 Sep 14:23:23.857 # +sdown slave 192.168.11.212:6379 192.168.11.212 6379 @ mymaster 192.168.11.201 6379
[5367] 17 Sep 14:25:38.564 # -sdown slave 192.168.11.212:6379 192.168.11.212 6379 @ mymaster 192.168.11.201 6379
[5367] 17 Sep 14:25:48.577 * +convert-to-slave slave 192.168.11.212:6379 192.168.11.212 6379 @ mymaster 192.168.11.201 6379

 

一旦slave(192.168.11.201)变为master,当原来的master再启动,新的master(192.168.11.201)保持为master,除非新的master宕机。

模拟宕机,可以使用kill redis的进程实现

使用redis-cli shutdown是不行的,用此方法关闭master后,slave将会一直等待

[5367] 17 Sep 14:17:02.075 # +new-epoch 9
[5367] 17 Sep 14:17:02.075 # +try-failover master mymaster 192.168.11.212 6379
[5367] 17 Sep 14:17:02.079 # +vote-for-leader d535c16973e8d4925e3d8c003aca17ff9f01626b 9
[5367] 17 Sep 14:17:13.014 # -failover-abort-not-elected master mymaster 192.168.11.212 6379
[5367] 17 Sep 14:17:13.106 # Next failover delay: I will not start a failover before Thu Sep 17 14:23:02 2015

 

 

 

猜你喜欢

转载自belinda407.iteye.com/blog/2198397