设置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的主从自动切换相关推荐

  1. Linux企业化运维--(7)redis服务之redis配置及主从复制、主从自动切换、集群、redis+mysql、gearman实现数据同步

    Linux企业化运维 实验所用系统为Redhat-rhel7.6. 目录 Linux企业化运维 Linux企业化运维--(7)redis服务之redis配置及主从复制.主从自动切换.集群.redis+ ...

  2. rocketmq DLedger主从自动切换

    rocketmq DLedger主从自动切换 rocketmq从4.5开始,提供了故障自动切换功能,当主从集群中的master故障后,可自动从多个slave中选举出master,完成故障转移,不需要人 ...

  3. php redis主从自动切换,Redis 集群的主从切换

    Redis 集群的主从切换不再使用 Sentinel 作为外置监控, 而是集群内部在主节点挂掉之后选举出一个从节点取代主节点, 处理相应的分片的数据请求. 当然前提条件是对应的主节点有至少一个可连通的 ...

  4. redis哨兵主从不切换_《「面试突击」—Redis篇》-- Redis的主从复制?哨兵机制?...

    Redis如何保证高并发,高可用? 高并发:redis的单机吞吐量可以达到几万不是问题,如果想提高redis的读写能力,可以用redis的主从架构,redis天热支持一主多从的准备模式,单主负责写请求 ...

  5. Redis Sentinel主从复制自动切换方案

    一.准备环境 #配置环境: Redis Sentinel:192.68.40.16:26379 Redis server主:192.168.40.17:6379 Redis server从:192.1 ...

  6. Redis集群配置(手工切换主Redis,哨兵自动切换主Redis)

    1.单机节点弊端 单点故障 容量有限 连接压力 2.集群模型 说明: AKF X:全量,镜像,横向扩容 Y:业务,功能,根据业务纵向扩容 Z:优先级,逻辑再拆分,纵向的集群根据一定规则再次划分 3.集 ...

  7. 双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

    前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构. 架构简介 此架构主要是由ke ...

  8. k8s主从自动切换mysql_Kubernetes一键部署Mycat+Mysql主从集群

    Kubernetes一键部署一主一从,读写分离,自动切换的mycat+mysql架构,其中mycat配置文件.mysqsl数据文件的volume挂载未涉及,可根据实际情况进行修改.所有代码参照gith ...

  9. MyCat2 mysql8 读写分离 主从自动切换

    MyCat2数据中间件应用 mysql主从配置与自动切换 环境准备 三台虚拟机192.168.2.5(mycat).192.168.2.6(mysql1).192.168.2.7(mysql2) jd ...

最新文章

  1. python初学之魔法方法1
  2. 首个ML的生物医药大型数据集,3行代码就能运行丨哈佛MIT斯坦福等出品
  3. Vitamio FAQ(2012-11-20 )
  4. 计算机桌面文件管理窗口,隐藏Win10此电脑窗口的6个额外文件夹
  5. osgi实战学习之路:6. Service-1
  6. Java设计模式(二十):中介者设计模式
  7. codeplex网站翻译
  8. day07 数据类型间的相互转化及字符编码
  9. MySQL创建用户与授权方法
  10. 使用 docker 构建分布式调用链跟踪框架skywalking
  11. oracle 重建 sys密码文件
  12. mysql事务与jdbc事务_事务(mysql事务、jdbc事务)
  13. 【向生活低头】在有联想云教室的win10电脑上更新win10的 变不幸方法
  14. access数据库窗体设计实验报告_Access2010实验报告
  15. Wagtail 教程 3:引入 Bootstrap 4,Font Awesome,页面布局优化
  16. 【游戏开发引擎】 实验3:Captain Blaster 2D 滚动射击游戏
  17. Android 压缩文件成ZIP并分享到微信
  18. Spring Boot Admin 2.3 简洁Demo
  19. 进入外包公司之后…………
  20. Android客户端Monkey稳定性测试

热门文章

  1. python处理嵌套字典写入Excel
  2. 核心圈好图书推荐(二)
  3. 广东省云浮市谷歌卫星地图下载
  4. 计算机组成指令系统的论文,计算机组成原理探讨论文
  5. GdPicture.NET SDK Crack,编辑、捕获或打印文档
  6. C++ 并发指南< future >(3)std::future std::shared_future
  7. 史上最全国家统计局划分代码爬取
  8. android耳机音量与外放音量同步
  9. 千寻发布“昆仑镜”,成为全球首个万物互联时代构筑时空智能“新基建”的底座...
  10. grep多关键词查询