安装部署
环境准备
部署过程
port 6377
daemonize yes
logfile "/redis_data/log/redis_6377.log"
dir "/redis_data/data/6377"
dbfilename "dump_6377.rdb"
复制
redis-server usr/local/redis/etc/redis_6377.conf
复制
redis-cli -h 127.0.0.1 -p 6377
127.0.0.1:6377> ping
PONG
复制
slaveof 127.0.0.1 6377
复制
redis-server usr/local/redis/etc/redis_6378.conf
redis-server /usr/local/redis/etc/redis_6379.conf
复制
[redis@localhost etc]$ redis-cli -h 127.0.0.1 -p 6377 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6378,state=online,offset=308,lag=0
slave1:ip=127.0.0.1,port=6379,state=online,offset=308,lag=1
复制
port 26377
dir "/redis_data/data/26377"
logfile "/redis_data/log/redis-26377.log"
#配置主节点的IP和端口,2代表主节点判断失败至少需要2个Sentinel节点同意,一般设置为Sentinel节点数的一半加1.
sentinel monitor mymaster 127.0.0.1 6377 2
#30秒ping不通主节点的信息,主观认为master宕机
sentinel down-after-milliseconds mymaster 30000
#故障转移时从节点同时向新主发起复制请求的数量,1代表从节点会轮询发起复制。
sentinel parallel-syncs mymaster 1
#故障转移开始,180秒内没有完成,则认为转移失败
sentinel failover-timeout mymaster 180000
复制
redis-sentinel sentinel-26377.conf
redis-sentinel sentinel-26378.conf
redis-sentinel sentinel-26379.conf
复制
[redis@localhost redis]$ redis-cli -h 127.0.0.1 -p 26377 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6377,slaves=2,sentinels=3
复制
故障转移
127.0.0.1:26377> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6378,slaves=2,sentinels=3
复制
每个Sentinel节点每隔1秒对主、从、其他Sentinel阶段发送ping探测,超过down-after-milliseconds未返回响应,则判断该节点主观下线。
Sentinel节点向其他Sentinel节点询问对于异常节点的判断,当达到 quorum个sentinel节点都认为被主观下线的节点异常时,则对该节点做客观下线。
在sentinel节点中通过Raft算法选举出一个leader来完成故障转移。
当出现故障的节点是主节点时,sentinel leader会根据优先级、复制偏移量、runid等在从节点中选出一个作为主节点,执行slaveof no one命令。
leader向其他从节点发送指令,让他们成为新主的从节点,并将原来的主节点更新为从节点,当旧主恢复后去复制新主的数据。
复制完成后,发布主节点的切换消息。
最后修改时间:2021-02-18 14:59:38
文章转载自MySQL数据库技术栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
国产非关系型数据库 Eloqkv 初体验
JiekeXu
156次阅读
2025-04-10 23:51:35
融合Redis缓存的PostgreSQL高可用架构
梧桐
109次阅读
2025-04-08 06:35:40
Redis概要
听溪
49次阅读
2025-04-11 10:23:10
安装与配置Redis
鲁鲁
42次阅读
2025-04-11 10:26:10
Redis数据库——Cluster集群模式
编程Cookbook
41次阅读
2025-04-16 15:34:44
Redis改协议内幕曝光!核心开发者亲述被“踢出局”,外部贡献者几乎全跑光了!
老鱼笔记
40次阅读
2025-04-17 10:41:56
使用Jedis访问Redis数据库
怀念和想念
38次阅读
2025-04-11 15:08:30
Redis geo 实战:“附近的人”实现,打造社交的新维度
老王两点中
35次阅读
2025-04-11 09:02:30
Redis
鲁鲁
30次阅读
2025-04-07 20:14:35
Redis提供的持久化机制
luyingjun
28次阅读
2025-04-11 15:11:05