主机名centos01、centos02、centos03
主机名ipredis 实例Sentinelcentos01192.168.175.11mastersentinel process 1centos02192.168.175.12slavesentinel process 2contos03192.168.175.13slavesentinel process 3
修改redis.conf和sentinel.conf配置文件
--------修改redis.conf------------
centos01下的/opt/redis/redis-3.2.7/redis.conf修改成:
bind 192.168.175.11
protected-mode yes
dir "/opt/redis/data"
centos02下的/opt/redis/redis-3.2.7/redis.conf修改成:
bind 192.168.175.12
protected-mode yes
dir "/opt/redis/data"
slaveof 192.168.175.11 6379
centos03下的/opt/redis/redis-3.2.7/redis.conf修改成:
bind 192.168.175.13
protected-mode yes
dir "/opt/redis/data"
slaveof 192.168.175.11 6379
--------修改sentinel.conf------------
centos01下的/opt/redis/redis-3.2.7/sentinel.conf修改成:
bind 192.168.175.11
protected-mode yes
sentinel monitor mymaster 192.168.175.11 6379 1
sentinel down-after-milliseconds mymaster 20000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
centos02下的/opt/redis/redis-3.2.7/sentinel.conf修改成:
bind 192.168.175.12
protected-mode yes
sentinel monitor mymaster 192.168.175.11 6379 1
sentinel down-after-milliseconds mymaster 20000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
centos03下的/opt/redis/redis-3.2.7/sentinel.conf修改成:
bind 192.168.175.13
protected-mode yes
sentinel monitor mymaster 192.168.175.11 6379 1
sentinel down-after-milliseconds mymaster 20000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
启动服务
--------启动redis------------
三台机子分别执行:
redis-server /opt/redis/redis-3.2.7/redis.conf &
redis-server /hadoop/haozhuo/redis/redis-stable/redis.conf &
redis-server /data/redis/redis-3.2.9/redis.conf &
-------启动sentinel------------
redis-server /opt/redis/redis-3.2.7/sentinel.conf --sentinel &
redis-server /hadoop/haozhuo/redis/redis-stable/sentinel.conf --sentinel &
redis-server /data/redis/redis-3.2.9/sentinel.conf --sentinel &
测试主备切换
1、将centos01上的master kill掉
2、过段时间,就发现192.168.175.13由slave变成了master
这时候
centos02的redis.conf变成了
bind 192.168.175.12
protected-mode yes
dir "/opt/redis/data"
slaveof 192.168.175.13 6379
centos3的redis.conf变成了
bind 192.168.175.12
protected-mode yes
dir "/opt/redis/data"
注意:centos03的slaveof 192.168.175.11 6379被删除了,centos02的slaveof 192.168.175.11 6379变成了slaveof 192.168.175.13 6379. 说明centos03变成了master,centos02成了centos03的slave。
主机名ipredis 实例Sentinelcentos01192.168.175.11挂掉sentinel process 1centos02192.168.175.12slavesentinel process 2contos03192.168.175.13mastersentinel process 3
如果后面centos01要加入到集群中时,要在redis.conf中添加slaveof 192.168.175.13.这样启动后,centos01就成了centos03的slave
==============以下是遇到的错误及解决方法=================
如果停掉master后,试图切换的时候出现 failover-abort-not-elected
1)如果redis实例没有配置
protected-mode yes
bind 192.168.175.11
则在sentinel 配置文件加上
protected-mode no
即可
2)如果redis实例有配置
protected-mode yes
bind 192.168.175.11
则在sentinel 配置文件加上
protected-mode yes
bind 192.168.175.11