redis的主从自动切换
设置redis主从主要是在不同的主机上编辑配置文件
我们准备三台主机
分别是server1、server2、server3
redis的主从自动切换是基于sentinel(哨兵)
1、Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:
1)监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
2)提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
3) 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。
Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。
虽然 Redis Sentinel 释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器, 你可以在启动一个普通 Redis 服务器时通过给定 –sentinel 选项来启动 Redis Sentinel 。
2、获取 Sentinel
目前 Sentinel 系统是 Redis 的 unstable 分支的一部分, 你必须到 Redis 项目的 Github 页面 克隆一份 unstable 分值, 然后通过编译来获得 Sentinel 系统。
Sentinel 程序可以在编译后的 src 文档中发现, 它是一个命名为 redis-sentinel 的程序。
你也可以通过下一节介绍的方法, 让 redis-server 程序运行在 Sentinel 模式之下。
另外, 一个新版本的 Sentinel 已经包含在了 Redis 2.8.0 版本的释出文件中。
以上均可在redis中文官网查看
www.redis.cn
3、配置主从
其中server1是master
##在server2中
vim /etc/redis/6379.conf
76 bind 127.0.0.1 -::1 172.25.50.2
95 protected-mode no
server2、server3是slave端
重复在server1中的安装和部署,不再赘述,可以查看博客redis的安装及部署
博客链接如下
CSDNhttps://mp.csdn.net/mp_blog/creation/editor/120429818
完成配置后重启redis
vim /etc/redis/6379.conf
76 bind 127.0.0.1 -::1 172.25.50.2
95 protected-mode no
478 # replicaof <masterip> <masterport>
479 replicaof 172.25.50.1 6379
/etc/init.d/redis_6379 restart
vim /etc/redis/6379.conf
76 bind 127.0.0.1 -::1 172.25.50.3
95 protected-mode no
478 # replicaof <masterip> <masterport>
479 replicaof 172.25.50.1 6379
/etc/init.d/redis_6379 restart
可以在server1中查看
redis-cli
127.0.0.1:6379> info# Replication
role:master
connected_slaves:2
slave0:ip=172.25.50.2,port=6379,state=online,offset=56028,lag=0
slave1:ip=172.25.50.3,port=6379,state=online,offset=56028,lag=1显示如上内容即配置成功
在server2、server3中可以用同样的方法查看
##在server2中
redis-cli
127.0.0.1:6379> info
# Replication
role:slave
master_host:172.25.50.1
在server3中
redis-cli
127.0.0.1:6379> info
# Replication
role:slave
master_host:172.25.50.1
4、配置哨兵模式(高可用)
在server1中
cp redis-6.2.4/sentinel.conf /etc/redis/
cd /etc/redis/
vim sentinel.conf 83 # The valid charset is A-z 0-9 and the three characters ".-_".84 sentinel monitor mymaster 127.0.0.1 6379 2 ##server1为master,当server挂了之后,需要slave端对master端是否挂掉投票,有两票认为master挂了则说明真的server1真的挂了
125 sentinel down-after-milliseconds mymaster 10000 ##连接超时时间为10秒,默认是30秒scp sentinel.conf server2:/etc/redis/
scp sentinel.conf server3:/etc/redis/redis-sentinel /etc/redis/sentinel.conf ##开启redis-sentinel
此时在server2、server3中也可以查看
redis-sentinel /etc/redis/sentinel.conf
显示如图所示
此时server1、server2、server3都已开启Sentinel
现在杀掉server1
注意:不能直接已经打开Sentinel的server1中杀,要重新打开一个server1再杀,否则关闭Sentinel后,不能完成自动切换
重新打开一个server2,在其中查看
redis-cli
info
可以看见server2变成了新的master
此时重新启动server1中的redis,可以看见server1变成了slave
说明高可用配置成功
redis的主从自动切换相关推荐
- Linux企业化运维--(7)redis服务之redis配置及主从复制、主从自动切换、集群、redis+mysql、gearman实现数据同步
Linux企业化运维 实验所用系统为Redhat-rhel7.6. 目录 Linux企业化运维 Linux企业化运维--(7)redis服务之redis配置及主从复制.主从自动切换.集群.redis+ ...
- rocketmq DLedger主从自动切换
rocketmq DLedger主从自动切换 rocketmq从4.5开始,提供了故障自动切换功能,当主从集群中的master故障后,可自动从多个slave中选举出master,完成故障转移,不需要人 ...
- php redis主从自动切换,Redis 集群的主从切换
Redis 集群的主从切换不再使用 Sentinel 作为外置监控, 而是集群内部在主节点挂掉之后选举出一个从节点取代主节点, 处理相应的分片的数据请求. 当然前提条件是对应的主节点有至少一个可连通的 ...
- redis哨兵主从不切换_《「面试突击」—Redis篇》-- Redis的主从复制?哨兵机制?...
Redis如何保证高并发,高可用? 高并发:redis的单机吞吐量可以达到几万不是问题,如果想提高redis的读写能力,可以用redis的主从架构,redis天热支持一主多从的准备模式,单主负责写请求 ...
- Redis Sentinel主从复制自动切换方案
一.准备环境 #配置环境: Redis Sentinel:192.68.40.16:26379 Redis server主:192.168.40.17:6379 Redis server从:192.1 ...
- Redis集群配置(手工切换主Redis,哨兵自动切换主Redis)
1.单机节点弊端 单点故障 容量有限 连接压力 2.集群模型 说明: AKF X:全量,镜像,横向扩容 Y:业务,功能,根据业务纵向扩容 Z:优先级,逻辑再拆分,纵向的集群根据一定规则再次划分 3.集 ...
- 双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计
前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构. 架构简介 此架构主要是由ke ...
- k8s主从自动切换mysql_Kubernetes一键部署Mycat+Mysql主从集群
Kubernetes一键部署一主一从,读写分离,自动切换的mycat+mysql架构,其中mycat配置文件.mysqsl数据文件的volume挂载未涉及,可根据实际情况进行修改.所有代码参照gith ...
- MyCat2 mysql8 读写分离 主从自动切换
MyCat2数据中间件应用 mysql主从配置与自动切换 环境准备 三台虚拟机192.168.2.5(mycat).192.168.2.6(mysql1).192.168.2.7(mysql2) jd ...
最新文章
- python初学之魔法方法1
- 首个ML的生物医药大型数据集,3行代码就能运行丨哈佛MIT斯坦福等出品
- Vitamio FAQ(2012-11-20 )
- 计算机桌面文件管理窗口,隐藏Win10此电脑窗口的6个额外文件夹
- osgi实战学习之路:6. Service-1
- Java设计模式(二十):中介者设计模式
- codeplex网站翻译
- day07 数据类型间的相互转化及字符编码
- MySQL创建用户与授权方法
- 使用 docker 构建分布式调用链跟踪框架skywalking
- oracle 重建 sys密码文件
- mysql事务与jdbc事务_事务(mysql事务、jdbc事务)
- 【向生活低头】在有联想云教室的win10电脑上更新win10的 变不幸方法
- access数据库窗体设计实验报告_Access2010实验报告
- Wagtail 教程 3:引入 Bootstrap 4,Font Awesome,页面布局优化
- 【游戏开发引擎】 实验3:Captain Blaster 2D 滚动射击游戏
- Android 压缩文件成ZIP并分享到微信
- Spring Boot Admin 2.3 简洁Demo
- 进入外包公司之后…………
- Android客户端Monkey稳定性测试
热门文章
- python处理嵌套字典写入Excel
- 核心圈好图书推荐(二)
- 广东省云浮市谷歌卫星地图下载
- 计算机组成指令系统的论文,计算机组成原理探讨论文
- GdPicture.NET SDK Crack,编辑、捕获或打印文档
- C++ 并发指南< future >(3)std::future std::shared_future
- 史上最全国家统计局划分代码爬取
- android耳机音量与外放音量同步
- 千寻发布“昆仑镜”,成为全球首个万物互联时代构筑时空智能“新基建”的底座...
- grep多关键词查询