redis的集群模式有三种,主从模式、哨兵模式和cluster集群,本例主要是说明下哨兵模式的部署
哨兵模式是基于主从配置,先配置一主多从的环境,然后由哨兵来监控各个节点的运行情况,如果master节点宕机之后会自主在剩下存活的节点中选取一个作为master节点,宕机的节点修复之后启动,会重新作为从节点加入到主从环境中,这过程中每个节点的配置文件(redis.conf)中关于主从配置的参数会自行进行修改。
vim /etc/redis/6379.conf
添加如下内容:# 修改以下内容开启远程访问
bind 0.0.0.0
# 添加一个密码
requirepass "123"
vim /etc/redis/6379.conf
添加如下内容:
# 修改以下内容开启远程访问
bind 0.0.0.0
# 添加一个密码
requirepass 123
# 192.168.1.166为主节点ip,6379为端口
slaveof 192.168.1.166 6379
masterauth 123
[NOTE]
较新的版本中,slaveof
已经更改为replicaof
,需要注意,另外如果配置了密码,在master节点上也需要先配置好masterauth
这个选项,为了在自主切换之后原master节点作为从节点之后能同步到新主节点上的数据。
redis-cli -h 127.0.0.1 -p 6379 -a "password" info Replication
复制模版配置文件
cp /u01/install/redis-5.0.5/sentinel.conf /etc/redis/
修改配置文件
vim /etc/redis/sentinel.conf
添加如下内容:
# sentinel monitor [master-group-name] [ip] [port] [quorum]
sentinel monitor mymaster 192.168.1.166 6379 2
# 主服务器 redis密码
sentinel auth-pass mymaster 123
# 后台运行
daemonize yes
# log文件
logfile "/var/log/sentinel.log"
[NOTE]
sentinel monitor mymaster 192.168.1.166 6379 2
该行的意思是:监控的master的名字叫做mymaster (可以自定义),地址为192.168.1.166:6379,行尾最后的一个2代表在sentinel集群中,多少个sentinel认为master死了,才能真正认为该master不可用了。
启动哨兵模式
需要先启动redis主服务,即 service redis_6379 start
然手启动哨兵模式, redis-server sentinel.conf --sentinel
这里主要是以配置systemctl系统服务的方式来配置开机自启,另哨兵模式的启动要求先启动主服务,可以将主服务考虑一并做成systemctl系统服务。
编写redis.service文件:vim /usr/lib/systemd/system/redis.service
[Unit]
Description=The redis_6379 Process Manager
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
[NOTE]
若配置了密码,ExecStop的部分可以改成/usr/local/bin/redis-cli -p 6379 -a "password" shutdown
设置redis主服务开机启动 systemctl enable redis
编写redis-sentinel.service文件:vim /usr/lib/systemd/system/redis-sentinel.service
[Unit]
Description=The redis-sentinel Process Manager
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis/sentinel.conf --sentinel
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
设置哨兵模式开机启动 systemctl enable redis-sentinel
原文:https://www.cnblogs.com/ariesblog/p/13914546.html