Redis-3.2.1主从故障测试实例 配置文件如下

来源:互联网 发布:java程序编译原理 编辑:程序博客网 时间:2024/05/23 18:31

转自:http://blog.csdn.net/yypzye/article/details/52281282

Redis-3.2.1主从故障测试实例 配置文件如下:

Rdis 实例1配置文件 r1.conf :(默认为master)


port 6379
masterauth mypwd
requirepass mypwd
protected-mode yes
bind 192.168.98.136


Rdis 实例2配置文件 r2.conf :

port 6380
masterauth mypwd
requirepass mypwd
protected-mode yes
bind 192.168.98.136
slaveof 192.168.98.136 6379


Rdis 实例3配置文件 r3.conf :

port 6381
masterauth mypwd
requirepass mypwd
protected-mode yes
bind 192.168.98.136
slaveof 192.168.98136 6379


Rdis sentinel 哨兵1配置文件 s1.conf;


port 26379
sentinel monitor mymaster 192.168.98.136 6379 1
sentinel auth-pass mymaster mypwd
sentinel down-after-milliseconds mymaster 15000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 80000
bind 192.168.98.136
protected-mode yes


Rdis sentinel 哨兵1配置文件 s1.conf;


port 26380
sentinel monitor mymaster 192.168.98.136 6379 1
sentinel auth-pass mymaster mypwd
sentinel down-after-milliseconds mymaster 15000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 80000
bind 192.168.92.136
protected-mode yes


首次依次启动 Rdis实例r1.conf  r2.conf r3.conf  和sentienl实例s1.conf s2.conf


然后停掉master r1, 测试宕机后的主从切换如下:

yzj@ubuntu:~$ redis-sentinel s1.conf
9127:X 22 Aug 23:27:50.999 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
9127:X 22 Aug 23:27:50.999 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
9127:X 22 Aug 23:27:50.999 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.1 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
 |    `-._   `._    /     _.-'    |     PID: 9127
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

9127:X 22 Aug 23:27:51.000 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
9127:X 22 Aug 23:27:51.003 # Sentinel ID is 26f43074868559a81927040f04d8afd6be4d7d2b
9127:X 22 Aug 23:27:51.003 # +monitor master mymaster 192.168.92.136 6379 quorum 1
9127:X 22 Aug 23:27:51.004 * +slave slave 192.168.98.136:6380 192.168.92.136 6380 @ mymaster 192.168.98.136 6379
9127:X 22 Aug 23:27:51.005 * +slave slave 192.168.98.136:6381 192.168.92.136 6381 @ mymaster 192.168.98.136 6379
9127:X 22 Aug 23:27:59.017 * +sentinel sentinel 73d21ad0584a4ce628c9aa5cc0653eda169b9080 192.168.98.136 26380 @ mymaster 192.168.98.136 6379
9127:X 22 Aug 23:28:18.366 # +new-epoch 1
9127:X 22 Aug 23:28:18.367 # +vote-for-leader 73d21ad0584a4ce628c9aa5cc0653eda169b9080 1
9127:X 22 Aug 23:28:18.417 # +sdown master mymaster 192.168.98.136 6379
9127:X 22 Aug 23:28:18.417 # +odown master mymaster 192.168.98.136 6379 #quorum 1/1
9127:X 22 Aug 23:28:18.417 # Next failover delay: I will not start a failover before Mon Aug 22 23:30:58 2016
9127:X 22 Aug 23:28:19.465 # +config-update-from sentinel 73d21ad0584a4ce628c9aa5cc0653eda169b9080 192.168.98.136 26380 @ mymaster 192.168.98.136 6379
9127:X 22 Aug 23:28:19.465 # +switch-master mymaster 192.168.92.136 6379 192.168.92.136 6381
9127:X 22 Aug 23:28:19.465 * +slave slave 192.168.92.136:6380 192.168.98.136 6380 @ mymaster 192.168.98.136 6381
9127:X 22 Aug 23:28:19.465 * +slave slave 192.168.92.136:6379 192.168.98.136 6379 @ mymaster 192.168.98.136 6381


如果停掉master 后,sentinel 显示足够数量的 sdown 后,没有出现odown或try-failover,则检查密码等配置是否正确


如果停掉master后,试图切换的时候出现 failover-abort-not-elected

1)如果redis实例没有配置

protected-mode yes
bind 192.168.98.136

则在sentinel 配置文件加上

protected-mode no

即可

2)如果redis实例有配置

protected-mode yes
bind 192.168.98.136

则在sentinel 配置文件加上

protected-mode yes
bind 192.168.98.136


即可

原创粉丝点击