今天继续给大家介绍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主从同步高可用架构相关推荐

  1. MySQL 5.6通过Keepalived+互为主从实现高可用架构

    本文将介绍两台Mysql如何实现高可用架构.通常我们会配置主从同步,但这样若主的Mysql挂掉,还需要手动干预,例如把指向主库的IP地址修改为指向从库的IP,为了实现自动切换到从数据库,我们可以使用K ...

  2. haproxy keepalived_详解mycat+haproxy+keepalived搭建高可用负载均衡mysql集群

    概述 目前业界对数据库性能优化普遍采用集群方式,而oracle集群软硬件投入昂贵,mysql则比较推荐用mycat去搭建数据库集群,下面介绍一下怎么用mycat+haproxy+keepalived搭 ...

  3. mysql keepalived主从_mysql高可用架构之(一)基于自身主从复制&keepalived实现

    系统环境及架构 #主机名 系统版本 mysql版本 ip地址 mysqlMaster centos7.4 mysql5.7 192.168.1.42 mysqlSlave centos7.4 mysq ...

  4. redis集群方式及高可用架构

    Redis集群模式 1.主从模式,单台服务器即可,无高可用,为1主2从方式 主节点可读写,从节点只读,数据会从主节点同步至从节点 2.cluster模式 3.0以上版本支持 Redis Cluster ...

  5. mysql性能优化和高可用架构实践pdf_实践大于一切!Alibaba最新MySQL性能优化+高可用架构全彩版PDF...

    本篇的内容将会覆盖MySQL 5. 7数据库体系结构.InnoDB存储引擎.MySQL事务和锁.性能优化.服务器全面优化.性能监控.主从复制,以及PXC集群.MHA自动故障转移群集.MGR组复制.Ke ...

  6. 金仓数据库KingbaseES高可用概述(高可用架构与最大高可用性的特性)

    熟悉MAA解决方案中使用的高可用性特性以便基于架构进行调整.以下将对主要高可用架构进行图/文功能说明. ​​​​​​ 4.1. 高可用架构介绍 ¶ 4.1.1. KingbaseES 读写分离集群架构 ...

  7. 数据库应用——Redis详解

                                                                                         Redis详解 一.非关系型数 ...

  8. Redis数据库教程——系统详解学习Redis全过程

    Redis数据库教程--系统详解学习Redis全过程 Redis快速入门:Key-Value存储系统简介 Key-Value存储系统:     Key-Value Store是当下比较流行的话题,尤其 ...

  9. 33.Redis详解

    一 缓存概念 缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较快的一方起到一个加速访问速度较慢的一方的作用,比如CPU的一级.二级缓存是保存了CPU最近经常访问的数据,内存是保存C ...

  10. Redis详解(1)--原理和机制

    一.性能 1 性能测试 测试环境: RHEL 6.3 / HP Gen8 Server/ 2 * Intel Xeon 2.00GHz(6 core) / 64G DDR3 memory / 300G ...

最新文章

  1. github密码格式_如何使用GitHub构建一个简单的网页 (不用框架版本)
  2. python数据挖掘入门与实战代码
  3. C++求解最大子序列和问题
  4. [CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql
  5. 在JPA和JDBC中使用存储过程。 嗯,只要使用jOOQ
  6. 程序员的艺术:排序算法舞蹈
  7. 一个人如果没有计划,那和咸鱼有什么区别!
  8. 读《深入浅出统计学》
  9. 数据结构课程设计:运动会分数统计
  10. logback日志配置教程
  11. 计算机组成原理第三部: 总线与IO系统
  12. 罗格斯的计算机科学博士奖学金,罗格斯大学cs怎么样
  13. 见丰知夏|国漫鼻祖丰子恺,数字藏品独家发售
  14. MFC实现CIE1931
  15. mysql表文件与结构_MySQL文件结构、逻辑架构及sql执行流程分析
  16. 网易云歌单重合率2.0
  17. DDK for windows
  18. java对象的内存布局
  19. 利用PaddleOCR训练车牌识别模型
  20. 清理yum源缓存_缓存是万恶之源

热门文章

  1. python—try-expect-else-finally的使用
  2. LeetCode学习记录(1-3)
  3. 不会Netty,你也永远不会熟悉Java
  4. 程序员到CTO还需要大补什么营养
  5. 读《自己动手写操作系统》
  6. PyTorch:tensor-数据处理
  7. 编程之美读书笔记2.15 - 子数组之和的最大值(二维)
  8. 进程管理:fork与exec函数及fork子进程和父进程
  9. 一、optimizer_trace介绍
  10. 关于sophus模板类需要注意的情况(error: missing template arguments before ‘SO3_R’)