主从配置
- redis版本:6.2.6
- 以1台主机,2台从机为例。
准备基础的redis配置
创建目录/opt/myredis,复制基础的redis.conf到此目录,并进行修改。
# 关闭AOF功能
appendonly no
配置主机信息
新建文件:redis6379.conf,添加内容
# 指定include当前目录下的redis.conf
include /opt/myredis/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb
配置2台从机信息
创建文件:redis6380.conf, 添加内容
include /opt/myredis/redis.conf
pidfile "/var/run/redis_6380.pid"
port 6380
dbfilename "dump6380.rdb"
创建文件:redis6381.conf, 添加内容
include /opt/myredis/redis.conf
pidfile "/var/run/redis_6381.pid"
port 6381
dbfilename "dump6381.rdb"
启动三台redis
redis-server /opt/myredis/redis6379.conf
redis-server /opt/myredis/redis6380.conf
redis-server /opt/myredis/redis6381.conf
批量关闭redis-server
ps -ef | grep -v grep | grep redis | awk -F' ' '{print $2}' | xargs kill -9
查看状态
首先连接到redis
redis-cli -p 6379
-p: 指定要连接到redis的哪个端口
在redis-cli中使用命令查看状态
info replication
连接到3个redis系统,分别查看状态,可以看到目前每个redis-server的role都是master。
设置从机为主机的slave
在6380和6381的redis中分别执行命令,将6379端口的redis设置为master。
slaveof 127.0.0.1 6379
# 不再做为从机时,使用命令
slaveof no one
重新查看状态
在各个端口的客户端重新执行:info replication 命令
- 可看到6379端口的redis仍然是master,此时带有两个slave。
- 6380和6380端口的redis的role变为slave。
哨兵模式sentinel
配置
在/opt/myredis下创建文档:sentinel.conf,并添加内容
daemonize yes
# 哨兵端口,默认26379
# port 7505
# 日志文件
logfile "./sentinel.log"
# sentinel monitor 主节点别名 主节点IP 端口 哨兵个数(有几个哨兵监控到主节点宕机执行转移)
sentinel monitor mymaster 192.168.10.102 6379 1
# 哨兵3s内没有收到主节点的心跳,就认为主节点宕机了,默认30秒
sentinel down-after-milliseconds mymaster 3000
# 选举出新的主节点之后,可以同时连接从节点的个数
# sentinel parallel-syncs mymaster 1
# 如果10秒后,master仍没活过来,则启动failover,默认180s
# sentinel failover-timeout mymaster 10000
# 连接redis主节点密码
# sentinel auth-pass mymaster 123456
启动
执行命令
redis-sentinel /opt/myredis/sentinel.conf
可看到响应输出信息,sentinel默认端口26379。
此时,尝试关掉6379端口的redis后,可看到sentinel日志输出,并选举出新的主机。