redis主从复制-切换配置

首先从官网下载源码进行安装:

wget http://download.redis.io/releases/redis-3.2.1.tar.gz
tar -zxvf redis-3.2.1.tar.gz
make && make test
sudo make install

默认安装到/usr/local/bin目录。

修改配置文件,生产环境要修改绑定端口、设定密码、日志等,比如:

    requirepass 123456

我这里进行测试就直接修改禁用保护模式了,生产模式千万别这么干!!!

    protected-mode no
    daemonize yes
    bind 0.0.0.0

对于从服务器,需要额外制定下面的配置:

    slaveof xxx.xxx.xxx.xxx port
    # masterauth xxxxx

如果主服务器有密码认证取消masterauth的注释并修改,完成后启动redis服务。

接下来配置哨兵

    port 26379                #sentinel使用的端口
    bind 0.0.0.0   # 添加这行才能在其他机器上使用redis-cli -h xxx.xxx.xxx.xxx -p 26379 info Sentinel
    daemonize yes             #sentinel后台运行。这行配置是添加的
    logfile "/apps/logs/redis/sentinel.log"  #log文件地址,这行配置是添加的
    sentinel monitor mymaster 172.16.203.10 6379 1   #指定master。后面的数字表示,当有几个节点认为主节点down时才认为主节点进入ODOWN状态,就是真正挂了。
    sentinel down-after-milliseconds mymaster 5000   #当多久,连接不上节点时,认为被连接节点进入S_DOWN(主观认为它down了);
    sentinel failover-timeout mymaster 15000         #这个配置有很多作用。1、重新执行failover的时间是该值的2倍;2、取消一个没更改配置的failover3、failover中等待所有slave更改新的配置的最大时间。
    sentinel auth-pass mymaster 123456              #设置校验的密码。如果redis设置了密码,这个一定要设置

主、从服务器的哨兵配置一样,可以单独在其他机器上部署哨兵程序。

然后启动redis-server ./sentinel.conf --sentinel

如果主服务器的服务挂掉,哨兵会自动选举主服务器。