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

1
2
3
4
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目录。

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

1
requirepass 123456

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

1
2
3
protected-mode no
daemonize yes
bind 0.0.0.0

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

1
2
slaveof xxx.xxx.xxx.xxx port
# masterauth xxxxx

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

接下来配置哨兵

1
2
3
4
5
6
7
8
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

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