Redis详解(七)——Redis主从同步高可用架构
今天继续给大家介绍Redis相关知识,本文主要内容是Redis的主从同步高可用架构。
阅读本文,您需要有一定的Redis主从同步基础,如果您对此还存在困惑,欢迎您查阅我博客内的其他文章,相信您一定会有所收获!
文章链接:
Redis详解(六)——Redis主从同步原理与配置
一、Redis sentinel实现高可用原理
在Redis详解(六)——Redis主从同步原理与配置文中,我们介绍了Redis的主从同步的配置实现,Redis主从同步很好的解决了高并发量场景下单台Redis服务器无法应对的问题,通过将Redis的读写压力进行分流,实现多台Redis服务器共同承担读写压力的问题。
尽管Redis主从同步的架构非常有用,但是却存在这Redis主库失效时整个架构无法写入内容的问题,针对这种场景,我们引入了Redis的哨兵机制。Redis哨兵,即sentinel,是Redis自带的一种实现高可用集群的Redis主库单点故障的解决方案。sentinel既可以监控架构,又可以提供配置功能,当sentinel发现Redis主服务器失效时,可以将从服务器中的一个自动提升为Redis主库,并且配置其他的Redis从库指向新的Redis主库。但是,为了避免sentinel的单点故障,我们应当把多台运行sentinel的设备配置为sentinel集群,当多个sentinel节点发现redis主服务器离线时,才会进行Redis主库的切换,以此来避免误判和sentinel的单点故障。
Redis哨兵会自动监控Redis主库,并且从Redis主库中获取整体的架构信息,多个sentinel之间使用“留言协议”来接收其他sentinel的信息,并使用投票机制来决定是否进行Redis架构的故障切换和选择新的Redis主服务器。
在安装Redis时也会自动安装sentinel,Redis哨兵自身也含有配置文件,如果Redis是采用YUM的方式进行安装,则sentinel的配置文件是/etc/redis-sentinel.conf。
二、Redis sentinel实现高可用配置实战
下面,我就进行Redis哨兵sentinel实现高可用配置。
(一)实战环境
实战环境如下:
Redis主服务器:192.168.136.11
Redis从服务器兼sentinel:192.168.136.12
Redis从服务器:192.168.136.13
(二)Redis主从同步配置
有关Redis主从同步的配置方式比较简单,可以参考文章:Redis详解(六)——Redis主从同步原理与配置。在这里就不过多赘述了,当按照要求配置好Redis主从同步后,在主库上查看信息,发现如下所示:
(三)sentinel配置
首先,我们先修改sentinel的配置文件,打开/etc/redis-sentinel.conf文件后,找到bind位置,将原来在注释中的bind内容改为:
bind 0.0.0.0
另外,搜索找到sentinel monitor处,将其修改为:
sentinel monitor mymaster 192.168.136.11 6379 1
其中sentinel monitor为固定命令,mymaster为给sentinel监控的架构起的一个名字,该名字可以任意,后面的IP地址为该架构下Redis主库的IP地址,后面的端口为该Redis主库的端口,最后的1表示当有1个sentinel投票决定进行故障转移时有效。配置完成后,启动sentinel,命令为:
systemctl start redis-sentinel
如果启动成功,会自动监听本地的26379端口,如下所示:
我们可以以登录redis的方式登录sentinel,并查看当前sentinel的监控架构,结果如下所示:
执行命令:
sentinel masters
可以查看Redis主库的相关信息,如下所示:
执行命令:
sentinel slaves 【架构名】
可以查看该架构下的Redis从库相关信息,如下所示:
下面,我们停止掉Redis主库(192.168.136.11),等待一段时间后,查看其余两台Redis从库上的同步信息,如下所示:
显然,在Redis哨兵的作用下,Redis集群重新选择了192.168.136.13作为新的Redis主库,并且192.168.136.12指向了新的Redis主库,实验配置成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
Redis详解(七)——Redis主从同步高可用架构相关推荐
- MySQL 5.6通过Keepalived+互为主从实现高可用架构
本文将介绍两台Mysql如何实现高可用架构.通常我们会配置主从同步,但这样若主的Mysql挂掉,还需要手动干预,例如把指向主库的IP地址修改为指向从库的IP,为了实现自动切换到从数据库,我们可以使用K ...
- haproxy keepalived_详解mycat+haproxy+keepalived搭建高可用负载均衡mysql集群
概述 目前业界对数据库性能优化普遍采用集群方式,而oracle集群软硬件投入昂贵,mysql则比较推荐用mycat去搭建数据库集群,下面介绍一下怎么用mycat+haproxy+keepalived搭 ...
- mysql keepalived主从_mysql高可用架构之(一)基于自身主从复制&keepalived实现
系统环境及架构 #主机名 系统版本 mysql版本 ip地址 mysqlMaster centos7.4 mysql5.7 192.168.1.42 mysqlSlave centos7.4 mysq ...
- redis集群方式及高可用架构
Redis集群模式 1.主从模式,单台服务器即可,无高可用,为1主2从方式 主节点可读写,从节点只读,数据会从主节点同步至从节点 2.cluster模式 3.0以上版本支持 Redis Cluster ...
- mysql性能优化和高可用架构实践pdf_实践大于一切!Alibaba最新MySQL性能优化+高可用架构全彩版PDF...
本篇的内容将会覆盖MySQL 5. 7数据库体系结构.InnoDB存储引擎.MySQL事务和锁.性能优化.服务器全面优化.性能监控.主从复制,以及PXC集群.MHA自动故障转移群集.MGR组复制.Ke ...
- 金仓数据库KingbaseES高可用概述(高可用架构与最大高可用性的特性)
熟悉MAA解决方案中使用的高可用性特性以便基于架构进行调整.以下将对主要高可用架构进行图/文功能说明. 4.1. 高可用架构介绍 ¶ 4.1.1. KingbaseES 读写分离集群架构 ...
- 数据库应用——Redis详解
Redis详解 一.非关系型数 ...
- Redis数据库教程——系统详解学习Redis全过程
Redis数据库教程--系统详解学习Redis全过程 Redis快速入门:Key-Value存储系统简介 Key-Value存储系统: Key-Value Store是当下比较流行的话题,尤其 ...
- 33.Redis详解
一 缓存概念 缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较快的一方起到一个加速访问速度较慢的一方的作用,比如CPU的一级.二级缓存是保存了CPU最近经常访问的数据,内存是保存C ...
- Redis详解(1)--原理和机制
一.性能 1 性能测试 测试环境: RHEL 6.3 / HP Gen8 Server/ 2 * Intel Xeon 2.00GHz(6 core) / 64G DDR3 memory / 300G ...
最新文章
- 【错误记录】TabLayout 升级支持库版本后报错 ( support:design 支持库升级到 28.0.0 后源码发生变更 )
- DotNet 开发团队图
- 使用GoldenGate进行平台迁移和数据库升级(9i-11g)步骤描述
- Git 在推送(Push)信息的时候提示git did not exit cleanly (exit code 1)的解决办法
- mysql_close6_关于mysql_close()函数的10篇文章推荐
- kmeans鸢尾花分类python代码_python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
- Maven3.0.5代理nexus
- 1.3求根之牛顿迭代法
- 种草!这只鹅虽然没有什么用,但是好可爱呀!
- 电池的寿命(信息学奥赛一本通-T1229)
- 求次方的c语言程序,C语言编程求13的13次方的最后三位数
- 西部数据绿盘、蓝盘、黑盘、红盘和紫盘有什么区别
- 微信公众平台开发(六) 翻译功能开发
- Python网络爬虫:爬取CSDN热搜数据 并保存到本地文件中
- 阿里最新秋招面经,腾讯/美团/字节1万道Java中高级面试题
- 爱奇艺自媒体平台如何入驻,被封怎么办?
- 嵌入式linux解决方法 | u-boot NFS下载文件报错:Loading: *** ERROR: File lookup fail
- 大学生职业规划:自我分析七步走
- STM32H743I-EVAL2_RTC_Tamper
- 手机+文件共享服务器软件,服务器文件共享软件
热门文章
- 解决了!联邦学习+推荐系统,冷启动和数据隐私问题双双K.O
- Python机器学习:通过scikit-learn实现集成算法
- 《linux核心应用命令速查》连载十一:pstree:显示进程状态树
- 二十一天学通C#:.NET中文件与文件夹的操作
- 二分法05:搜索旋转排序数组
- 77----空间直角坐标变换、平移、旋转、伸缩
- 铁子们,2019博客之星投票活动开始了!帮我投个票呗
- 深度学习中为什么要使用多于一个epoch?
- fatal: Not a git repository (or any parent up to mount point /home) Stopping at filesystem boundary
- Kotlin 函数(普通函数)