redis单机主从复制、哨兵模式

配置一个Master和两个slave为例:

1、首先复制三份redis.conf,分别命名redis6379.conf、redis6380.conf、redis6381.conf

redis单机主从复制、哨兵模式_第1张图片
2、修改配置文件操作:
    开启daemonize yes
    pid文件名字 如:pidfile /var/run/redis_6379.pid
    指定端口:port 6379
    log文件名字:logfile "6379.log"
    dump.rdb名字:dbfilename dump6379.rdb

3、启动三个redis

redis单机主从复制、哨兵模式_第2张图片

4、连接,指定端口,如:./redis-cli -p  6379

5、查看三个库的身份,命令:info replication

6379:

redis单机主从复制、哨兵模式_第3张图片

6380:

redis单机主从复制、哨兵模式_第4张图片

6381:

redis单机主从复制、哨兵模式_第5张图片

6、6379为主库,6380、6381为从库,从库执行命令:slaveof 主库ip地址 主库端口,此时用info replication查看

6379:

redis单机主从复制、哨兵模式_第6张图片
6380和6381:

redis单机主从复制、哨兵模式_第7张图片redis单机主从复制、哨兵模式_第8张图片

此时主从配置已经完成,

问题1:如果主库6379挂掉,两从库状态:

redis单机主从复制、哨兵模式_第9张图片redis单机主从复制、哨兵模式_第10张图片

可以看出两从库身份状态不变,再将主库6379启动:

redis单机主从复制、哨兵模式_第11张图片

一切照旧。若不启动主库,想将从库成为主库,如6380作主库,先在6380执行slaveof no one,然后在6381配置6380为主库。

问题2:从库挂掉,再启动,身份如何。以6380为例:

redis单机主从复制、哨兵模式_第12张图片

可以看出和6379关系已经断了,要恢复要手动设置。

哨兵模式

监控,当主库挂掉,可以从从库中投票选出一个当主库。

1、建sentinel.conf配置文件

redis单机主从复制、哨兵模式_第13张图片

2、编辑sentinel.conf文件,输入内容:sentinel monitor 被监控主库的名字(自定义) ip 端口 1

如 :sentinel monitor 6379 127.0.0.1 6379 1

最后数字1表示 ,剩下的从库的,最新投票得票数多于1票就可以成为主库。

3、启动哨兵,redis-sentinel sentinel.conf

redis单机主从复制、哨兵模式_第14张图片

启动成功,可以看到监控着6379。

现在挂掉主库,查看哨兵状态:

redis单机主从复制、哨兵模式_第15张图片

选择了6380作为主库。

此时将6380挂掉,再看哨兵状态:

redis单机主从复制、哨兵模式_第16张图片

只剩下6381,此时毫无疑问了。
此时再将6379和6380启动,结果将会自动的以6381为主库,就不再贴图了。

 

你可能感兴趣的:(redis)