Redis主从配置(Sentinel和Failover)的方法实现
作者:linmoo2006
本文介绍如何配置Redis的主从复制及哨兵系统,包括配置文件的详细设置、启动流程以及注意事项,通过三台物理机搭建环境,实现数据同步和故障转移,感兴趣的可以了解一下
1. 结构图
设计结构图如下,三台物理机子;

192.168.0.101为Master,其余2台为Slave。
2. Master的redis.conf配置
# 开启守护模式 daemonize yes # 设置密码 requirepass redis # 指定数据存储目录 dir ./ # 每秒一次aof写 appendfsync everysec # 打开aof持久化 appendonly yes #设置Master的密码(如果Master有密码的话) masterauth redis #3.2之后新加特性,在没有配置密码和bind是启用保护机制 protected-mode no #注释掉bind #bind 127.0.0.1
3. Slave的redis.conf配置
# 开启守护模式 daemonize yes # 设置密码 requirepass redis # 指定数据存储目录 dir ./ # 每秒一次aof写 appendfsync everysec # 打开aof持久化 appendonly yes # 指定所属的主机 slaveof 192.168.0.101 6379 #设置Master的密码(如果Master有密码的话) masterauth redis # 指定从机"只读" slave-read-only yes #3.2之后新加特性,在没有配置密码和bind是启用保护机制 protected-mode no #注释掉bind #bind 127.0.0.1
4. 启动redis
这时候可以分别启动3台redis,在master中设置数据,会同步到其它2台slave中。
5. Sentinel.conf配置
# sentinel通讯端口 port 26379 #3.2之后新加特性,在没有配置密码和bind是启用保护机制 protected-mode no # sentinel需要监控的master/slaver信息,格式为sentinel monitor <mastername> <masterIP> <masterPort> <quorum> # 其中<quorum>应该小于集群中slave的个数,当失效的节点数超过了<quorum>,则认为整个体系结构失效 sentinel monitor myMaster 192.168.0.101 6379 1 # sentinel auth-pass <master-name> <password> sentinel auth-pass myMaster redis # master被当前sentinel实例认定为失效的间隔时间,格式为sentinel down-after-milliseconds <mastername> <milliseconds> sentinel down-after-milliseconds myMaster 10000 # 当新master产时,同时进行“slaveof”到新master并进行同步复制的slave个数 # 在salve执行salveof同步时,将会终止客户端请求。 # 此值较大,意味着“集群”终止客户端请求的时间总和和较大。 # 此值较小,意味着“集群”在故障转移期间,多个salve向客户端提供服务时仍然使用旧数据。 sentinel parallel-syncs myMaster 1 # failover过期时间。当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failoer失败。 sentinel failover-timeout redisMaster 60000
6. 启动sentinel
分别启动3台的sentinel,会显示同步情况。
7. 注意事项
- protected-mode设置默认是yes,这会导致无法连接master,需要设置为no
- 如果slave被关掉,这sentinel会通知各个机子
- 如果master被关掉,那么会在剩下的slave中投票出一台作为master,系统会自动修改各自的redis.conf和sentinel.conf文件。如果原先主机重启,则会被当做是一台slave。
到此这篇关于Redis主从配置(Sentinel和Failover)的文章就介绍到这了,更多相关Redis主从配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
