前言

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。普遍用于目前主流的分布式架构系统中,关于redis的详细介绍,见另一篇文章:

redis的安装与介绍​blog.csdn.net

redis的多机数据库实现,主要分为以下三种:

  1. Redis哨兵(Sentinel)
  2. Redis复制(主从)
  3. Redis集群

一、Redis的主从复制

通过执行slaveof命令或设置slaveof选项,让一个服务器去复制另一个服务器的数据。被复制的服务器称为:Master主服务;对主服务器进行复制的服务器称为:Slave从服务器。主数据库可以进行读写操作,当写操作导致数据变化时会自动将数据同步给从数据库。而从数据库一般是只读的,并接受主数据库同步过来的数据。一个主数据库可以拥有多个从数据库,而一个从数据库只能拥有一个主数据库。

主从复制问题:当master down,需要手动将一台slave使用slaveof no one提升为master要实现自动,就需要redis哨兵。

实现原理步骤:

  1. 从服务器向主服务器发送SYNC命令
  2. 主服务器收到SYNC命令后,执行BGSAVE命令,在后台生成RDB文件,使用缓冲区记录从现在开始执行的所有的写命令。
  3. 当主服务器的BGSAVE命令执行完毕后,主服务器后将BGSAVE命令生成的RDB文件发送给从服务器,从服务器接收并载入这个RDB文件,将自己的数据库状态更新至主服务器执行BGSAVE命令时的数据库状态。
  4. 主服务器将记录在缓冲区里面的所有写命令发送给从服务器,从服务器执行这些写命令,将自己的数据库状态更新至主服务器数据库当前所处的状态。

二、Redis的哨兵(Sentinel)

为了解决Redis的主从复制的不支持高可用性能,Redis实现了Sentinel哨兵机制解决方案。由一个或多个Sentinel去监听任意多个主服务以及主服务器下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线的主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已经下线的从服务器,并且Sentinel可以互相监视。

当有多个Sentinel,在进行监视和转移主从服务器时,Sentinel之间会自己首先进行选举,选出Sentinel的leader来进行执行任务。

三、Redis集群

集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能。一个Redis集群通常由多个节点组成;最初,每个节点都是独立的,需要将独立的节点连接起来才能形成可工作的集群。

Cluster Nodes命令和Cluster Meet命令,添加和连接节点形成集群。

Redis中的集群分为主节点和从节点。其中主节点用于处理槽;而从节点用于复制某个主节点,并在被复制的主节点下线时,代替下线的主节点继续处理命令请求。

觉得对你有帮助,关注博客和公众号。不定期分享最新前沿技术框架和bat大厂常用技术等,加群不定期分享行业内大牛直播讲课以及获得视频课件资料等。

redis哨兵主从不切换_Redis的三种模式:主从、哨兵、集群相关推荐

  1. Mysql主从和redis集群哪个好_Redis的三种模式:主从、哨兵、集群

    前言 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.普遍用于目前主流的分布式架构系统中,关于redis的详细 ...

  2. Redis 高级特性(5)— 集群模式(主从模式、哨兵模式、cluster 集群模式)

    Redis 是如何做到高可用的呢? 它主要通过支持主从模式.哨兵模式.集群模式这三种模式,来满足不同业务特点和可用等级的需求. 其中,主从模式部署最简单,用得也最多,集群模式比较复杂,但可用性最高. ...

  3. 摸透 Redis 主从复制、哨兵、Cluster 三种模式

    概述 Redis作为缓存的高效中间件,在我们日常的开发中被频繁的使用,今天就来说一说Redis的四种模式,分别是「单机版.主从复制.哨兵.以及集群模式」. 可能,在一般公司的程序员使用单机版基本都能解 ...

  4. redis 高可用(持久化、主从复制、哨兵、集群)以及集群的三种模式

    Redis高可用定义 在web服务器中,高可用代表服务器可以正常访问的时间,一般使用百分比来衡量多长时间内可以提供正常服务 但是在redis中,高可用的定义还要更广泛一点,除了提供正常的服务(如主从分 ...

  5. redis搭建主从哨兵模式+分片集群部署(redis系列二)

    前言:在前一章了解redis的基本介绍后,这一章主要介绍redis的实战部署,文章有点长请一步步耐心看完,我相信肯定会有收获的,这里用的资源包是2022年最新的redis版本可能会跟旧版本不同,在此章 ...

  6. redis集群的三种模式

    通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据.但是由于数据是存储在一台服务器上的,如果这台服务器出 ...

  7. springboot redis 断线重连_Redis(9)——史上最强【集群】入门实践教程

    一.Redis 集群概述 Redis 主从复制 到 目前 为止,我们所学习的 Redis 都是 单机版 的,这也就意味着一旦我们所依赖的 Redis 服务宕机了,我们的主流程也会受到一定的影响,这当然 ...

  8. Redis高可用方案:sentinel(哨兵模式)和集群

    一. redis高可用方案–sentinel(哨兵模式) 当我们搭建好redis主从复制方案后会发现一个问题,那就是当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力, ...

  9. Redis高可用解决方案:sentinel(哨兵模式)和集群

    一. redis高可用方案–sentinel(哨兵模式) 当我们搭建好redis主从复制方案后会发现一个问题,那就是当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力, ...

最新文章

  1. GPU上创建目标检测Pipeline管道
  2. 加密算法有哪些?对称加密和非对称加密的区别?
  3. #每天问自己个问题#6. SIP标准协议 RFC3261
  4. 临时内核页表的建立过程
  5. 《最后生还者:第二部》文学批评
  6. 亲试白天使:华硕家用级无线路由RT-N11+
  7. 手机App都在偷听我说话?窃听疑云全球密布,科技公司连连喊冤
  8. qtableview 查询_在QTableView中搜索/查找功能
  9. SENSOR DVP接口介绍
  10. linux系统微信怎么放桌面上,Linux 安装微信/QQ
  11. Python pickle 反序列化详解
  12. 计算与推断思维 五、表格
  13. PikPak离线下载,磁力网盘
  14. npm 更新 npm_您可以使用8 npm技巧来打动同事
  15. 整理一些简历制作、工作、面试、招聘网站资源分享
  16. 祖先祖先基因组重建研究
  17. DaVinci:调色版本
  18. 【保密知识】排查失泄密隐患 防控保密风险点
  19. EF Data Operation With Async Task
  20. u盘恢复数据|U盘打不开提示格式化怎么恢复数据?

热门文章

  1. JavaWEB开发的国际化
  2. 基于JAVA+Servlet+JSP+MYSQL的毕业生离校管理系统
  3. 基于JAVA+SpringMVC+MYSQL的企业员工管理系统
  4. dos查看java环境变量_dos命令的识别及环境变量的设置实例
  5. 文件处理命令,目录处理命令,链接命令
  6. 修改pip安装源加快python模块安装
  7. js 获取相同name元素的属性值
  8. 置顶,博客中所有源码 github
  9. (转)正则表达式在ORACLE中的使用
  10. 采用keepalived施工可用性MySQL-HA