一、主从复制
# 查看信息
info replication
127.0.0.1:6379> info replication
# Replication
role:master # 当前为主角色
connected_slaves:0 # 是否拥有从角色机器
master_failover_state:no-failover
master_replid:854916ff764f8cf90f498bce30247096ffc8d7e1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
1、准备两台机器
两台机器redis-server redis.conf启动redis,此时默认都为master节点
redis1为master:
设置密码为 abc1234,并开启0.0.0.0
requirepass abc1234
redis2为slave:
设置验证密码为abc1234
masterauth abc1234
两台机器网络互通且redis2服务器能远程连接redis1服务器的redis
2、设置主从
在slave服务器上配置
SLAVEOF masterIP masterPORT
# SLAVEOF NO ONE 取消设置为从服务器
此时可以看到:认主成功,且在master节点可以看到slave节点信息,此时,主从配置完成
但是这样配置是临时配置,永久配置要去配置文件里面配置
vim redis-7.2.3/redis.conf
replicaof <masterip> <masterport>
3、验证
master写入:
slave读取:
4、复制原理
二、哨兵 Sentinel
Redis哨兵模式用于监控和管理Redis实例,可以实现自动故障转移和提高系统的可用性。在哨兵模式中,多个哨兵进程负责监控主从Redis实例,当主实例出现故障时,哨兵会选举新的主实例,从而保证系统的持续可用性。master宕机后,哨兵1会去检测,此时仅是哨兵1主观认为master不可用(主观下线),当哨兵2、3也检测到不可用时,并且当数量达到一定的值,哨兵们会进行投票,投票结果由其中一个哨兵发起故障转移切换master操作,切换成功后,就会发布订阅模式让各个哨兵吧自己监控的slave实现切换主机(客观下线)
优点:
哨兵集群, 基于主从复制模式, 所有主从配置优点, 它全有;主从可以切换, 故障可以转移, 系统可用性就会很好;哨兵模式就是主从模式的升级, 手动到自动, 更加健壮
缺点:
redis 不好在线扩容, 集群容量一旦到达上限, 在线扩容就十分的麻烦;实现哨兵模式的配置其实是很麻烦的, 里面有很多选择
1、配置
# 新增哨兵配置
vim sentinel.conf
sentinel monitor myredis masterIP masterPort 1
# sentinel monitor
# myredis 被监控名称
# masterIP masterPort 被监控主机与端口
# 1 数字1代表主机挂了, slave 投票看谁接替成为主机, 票数最多的就会成为主机
全部配置参考:https://cloud.tencent.com/developer/article/1865872
2、启动哨兵
redis-sentinel redis-7.2.3/sentinel.conf