搭建一主两仆
新建一个文件夹,叫redisMasterSlaveDemo
,将原来的安装redis目录下的配置文件复制过来
cp redis6/redis-6.2.6/redis.conf redisMasterSlaveDemo/
关闭配置文件中的aof
创建新的配置文件
vim redis6379.conf
在文件中填入如下内容
include /home/wingd/MySoftware/redisMasterSlave/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb
同样创建redis6380.conf,redis6381
,填入如下内容
include /home/wingd/MySoftware/redisMasterSlave/redis.conf
pidfile /var/run/redis_6380.pid
port 6380
dbfilename dump6380.rdb
include /home/wingd/MySoftware/redisMasterSlave/redis.conf
pidfile /var/run/redis_6381.pid
port 6381
dbfilename dump6381.rdb
启动redis服务
redis-server redis6379.conf
redis-server redis6380.conf
redis-server redis6381.conf
可以看到服务已经启动
连接服务
redis-cli -p 6379
查看redis服务的信息
info replication
配置从机,需要在从机上执行:
# 主机IP和端口号
# slaveof <ip> <port>
SLAVEOF 127.0.0.1 6379
这里将6380,6381
配置成从机
slaveof 127.0.0.1 6379
然后查看信息
在主机中写入数据,从机也有,但在从机中无法写入数据
从服务器挂掉后的特点
- 当从服务器挂掉后,比如6381挂掉,再启动后6381是主的,不是从的
- 再从服务器挂掉期间,如果主服务器添加新数据,添加后6381重新作为从服务器,会拥有之前主服务器新添加的数据
再重新让6381变成从服务器
主服务器挂掉后的特点
- 主服务器挂掉后,从服务器还认之前的‘大哥’
当主机复活后,之前的两个从机还在
从机也认之前的主机
薪火相传模式
主机有从机,从机还可以有从机
反客为主
从机可以变回主机,
使用命令 :
slaveof no one
该方式需要手动实现。当主机挂掉后,可以用这种方式救场
哨兵模式
哨兵模式可以理解为反客为主的自动版,不是手动实现的
这里配置一个哨兵,创建sentinel.conf, 并添加内容
# 哨兵服务端口
port 26379
# 哨兵工作信息存储目录
dir /home/wingd/MySoftware/redisMasterSlaveDemo/temp
# 监控 主 连接字符串 哨兵判挂标准(几个哨兵认定他挂了,就判定为主挂了,通常为哨兵数量的一半加一)
sentinel monitor mymaster 127.0.0.1 6379 1
# 主 连接多长时间无响应,就认定它挂了(默认 30s)
sentinel down-after-milliseconds mymaster 30000
# 主挂了之后,新的主上任同步数据的路线数量,数值越小,对服务器压力越小
sentinel parallel-syncs mymaster 1
# 新主同步数据时,多长时间同步完算有效 (默认 180s)
sentinel failover-timeout mymaster 180000
启动三台服务,6379(主),6380(从),6381(从),
启动哨兵 redis-sentinel sentinel26379.conf
当主机shutdown后,
哨兵重新选举新的master
6381变为新主机了,这时重新启动6379,6379会变成从机