面试突击 005 | Redis 是如何实现高可用的?它的实现方式有哪些?「视频版」

这是我的第 35 篇原创文章

作者 | 老王(javacn666)

这部视频的录制、剪辑、做 PPT、写文稿大约花费了 5 个小时的时间,希望这种形式能被更多的人喜欢,希望这篇文章会给你带来更多的价值。

1 面试题

Redis 是如何实现高可用的?它的实现方式有哪些?

2 涉及问题

  1. 什么是高可用?

  2. Redis 中高可用的实现方式有哪些?

  3. 各种实现方式的优缺点有哪些?

3 视频

视频内容如下:

4 答案

高可用是指通过设计减少程序不能提供服务的时间叫做高可用。

Redis 实现高可用的方式有四种:

  1. 持久化

  2. 主从同步(主从复制)

  3. Redis Sentinel

  4. Redis Cluster

1)持久化

持久化有三种方式:

  1. RDB(Redis DataBase)全量复制

  2. AOF(Append Only File)增量复制

  3. 混合持久化(支持版本 Redis 4.0+)

持久化让 Redis 的数据不再丢失,当某个节点奔溃时,可以很快的重新启动或重新搭建一个 Redis 服务器端,加载持久化文件即可恢复 Redis 的正常运行,为 Redis 奔溃恢复节省了宝贵的时间。

更多介绍详见视频部分。

2)主从同步

提供的功能是从单机 Redis 变成多机 Redis。

提供两种模式:主从模式和从从模式。

主从模式,如下图所示:

从从模式,如下图所示:

当主节点出现问题,我们可以迅速把从节点切换成主节点,以快速恢复 Redis 的正常使用。

3)Redis Sentinel

主从模式有一个问题就是每次主节点出现问题时,我们需要手动所有从节点,非常的不方便,使用我们需要有一个监控的程序 Sentinel 帮我们盯着这些主从服务器,一旦主节点有问题就立马拥护一个从节点作为新的主节点,这就是 Sentinel 最有价值的功能,如下图所示:

4)Redis Cluster

集群功能是 Redis 3.0 提供的,它除了拥有主从和 Sentinel 的所有功能之外,还支持多个主从节点,Sentinel 监视的一组服务中只能有一个主节点,而 Cluster 可以拥有任意多个,并且 Cluster 提供了分片功能,可以把数据均衡的存储在各个主节点上,大大的提供了 Redis 的并发能力,如下图所示:

5 小结

持久化提供了数据存储功能,让数据不再丢失,提高了 Redis 恢复的可能性;主从同步模式把单机 Redis 变成了多机 Redis,并且可以实现读写分离,从而降低了主节点读取的压力,当主节点宕机之后,也能手动快速的恢复 Redis 服务;Sentinel 把主从手动恢复的功能变成了自动的,实现了自动容灾;而 Cluster 除了支持其他功能之外,还提供了串连多个主从服务器的能力以及分片的能力,大大的提供了 Redis 的并发能力。

更多内容,请看视频部分。

【END】

近期热文

 
  • 面试突击 004 | 如何排查 Redis 中的慢查询?

  • 面试突击 003 | Redis 如何实现查询附近的人?

  • 面试突击 002 | Redis 是如何处理已过期元素的?

  • 面试突击 001 | Redis 如何从海量数据中查询出某一个 Key?

  • Java面试详解(2020版):500+ 面试题和核心知识点详解

  • 面试珍藏:最常见的200多道Java面试题

关注下方二维码,订阅更多精彩内容

朕已阅 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux debian安装和使用Navicat16 for MySQL

Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并…

windosw7 Hosts文件的位置

2019独角兽企业重金招聘Python工程师标准>>> 1.Hosts文件的位置 : C:\Windows\System32\drivers\etc\Hosts 一般个人电脑都在这位置, 例如:118.144.78.38 www.51cto.com ip 域名 # Copyright…

Redis都不懂?就别去面试了!聊聊我的Redis新专栏「视频版」

前不久,有一个读者在后台留言,说他面试 Java 开发工程师岗位时,居然大部分的面试问题都是关于 Redis ,他都差点都忘记了自己应聘的是 Java 工程师了。而然这种现象在现在的后端面试中很常见,对 Redis 的掌握已经变成了…

Linux Debian Python弹出信息框、警告框和询问框

利用PyCharm开发平台和Python编程语言开发PyQt5界面程序,有时需要弹出信息框、警告框和咨询框,使用win32api和win32con在windows系统可以,但是在Linux系统不可以。为了解决这个问题,可以使用QMessageBox。 # pip install pywin32…

面试突击 | Redis 如何从海量数据中查询出某一个 Key?附视频

1 考察知识点 本题考察的知识点有以下几个: Keys 和 Scan 的区别Keys 查询的缺点Scan 如何使用?Scan 查询的特点 2 解答思路 Keys 查询存在的问题Scan 的使用Scan 的特点 3 Keys 使用相关 1)Keys 用法如下 2)Keys 存在的问题…

分享两个好用的nosql GUI工具

redis: 真是千呼万唤始出来,终于有了redis gui 谢谢作者,但中文乱码问题貌似还没有解决呀! https://github.com/caoxinyu/RedisClient mongoDB: MongoVUE这个还是很完善的 http://www.mongovue.com/ 转载于:https://www.cnblogs.com/tankaixi…

Linux Debian11安装MySQL8详细教程

一、下载MySQL Community Server Debian11使用了MariaDB 在APT的软件包存储库中并没有mysql,在这里下载MySQL Community Server 然后选择Debian时会出现建议使用 Mysql APT Repository。所以我们下载安装 Mysql APT Repository 的方式更新 APT Repository 之后使用 dpkg -i安…

HashMap 为什么会导致 CPU 100%?文章看不懂?来看这个视频吧!——面试突击 006 期...

无论是在实际工作中还是在面试中,HashMap 无疑是使用频率最高的知识点之一,所以我们需要搞懂每一个关于 HashMap 的知识点才行。哈喽,大家好,我是老王,欢迎来到 Java 面试突击,我们今天来开始第 6 期的内容…

Linux debian利用ifconfig查看IP地址

net-tools工具箱包括arp,hostname, ifconfig, netstat, rarp, route, plipconfig, slattach, mii-tool and iptunnel and ipmaddr等命令。 debian系统使用ifconfig命令查看IP 地址时,出现如下提示: 一、查看debian系统是否安装ifconfig命令 使用wherei…

Redis 中的过期元素是如何被处理的?「视频版」——面试突击 002 期

本文以面试问题「Redis 中的过期元素是如何被处理的?」为切入点,用视频加图文的方式和大家聊聊 Redis 过期元素被处理的相关知识点。 涉及的知识点 过期删除策略有哪些?这些过期策略有哪些优缺点?Redis 使用的是什么过期策略&…

Linux debian安装DBeaver连接MySQL8、导入和导出数据库详细教程

一、DBeaver简介 ​ DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好,且遵循ASL 协议。由于 DBeaver 基于 Java 开发,可以运行在各种操作系统上,比如Windows、Linux、macOS 等操作系统…

使用 Redis 如何实现查询附近的人?「视频版」——面试突击 003 期

面试问题 Redis 如何实现查询附近的人? 涉及知识点 Redis 中如何操作位置信息?GEO 底层是如何实现的?如何在程序实现查询附近的人?在实际使用中需要注意哪些问题? 视频答案 视频地址:https://www.bili…

利用URL

2019独角兽企业重金招聘Python工程师标准>>> Problem You have a HTML document that contains relative URLs, which you need to resolve to absolute URLs. Solution Make sure you specify a base URI when parsing the document (which is implicit when loadi…

Win10安装DBeaver连接MySQL8、导入和导出数据库详细教程

一、DBeaver简介 ​ DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好,且遵循ASL 协议。由于 DBeaver 基于 Java 开发,可以运行在各种操作系统上,比如Windows、Linux、macOS 等操作系统…

「视频版」当线程池溢出之后,程序会奔溃吗?面试突击 007 期

哈喽,大家好,我是老王,欢迎来到第 7 期的 Java 面试突击。本文的面试题是,当线程池的任务溢出之后,程序会奔溃吗?这个问题问的是关于线程池的任务数超过线程池的承载能力之后,会出现什么情况&am…

有人说:轻量级锁一定比重量级锁快!我忍不住笑了

世界上不止有黑白两色,黑与白之间还是灰色的地带。在成人的世界里,大多数人喜欢非黑即白的观点来看待一个问题,例如《十二公民》中那个刚开始所有人都认定的“一定是富二代杀S了自己的亲身父亲”,到最后大家理性分析和推测之后发现…

Python Django设计模式及模板层

一、Django的MTV模式 MTV代表Model - Template - View (模型-模板-视图)模式。 M模型层(Model)负责与数据交互。 T模板层(Template)负责呈现内容到浏览器。 V视图层(View)是核心&…

在Tomcat中配配置数据源汇总

为什么80%的码农都做不了架构师?>>> Tomcat本身不具备处理提供数据源的能力。借助于一些开源数据源实现,如:DBCP和C3P0等。 一、在http://commons.apache.org/可下载这些是Tomcat提供配置数据源所需的类库。 注意:Tom…

Linux debian安装、配置和使用PuTTY教程

PuTTY是一个小巧、好用、免费的跨平台的访问Linux服务器的终端工具。PuTTY工具可以使用Telnet、SSH、rlogin、纯TCP以及串行接口连接服务器,使用非常广泛。本文主要介绍Debian系统如何安装PuTTY和如何设置该工具的字体、颜色。从而实现个性化定制自己的PuTTY工具&am…

Linux Debian安装FileZilla文件远程传输工具

一、FileZilla简介 FileZilla是一个快速、免费、跨平台的FTP软件,实用多功能和界面直观的FTP客户端。FileZilla是Windows,Linux,MacOSX等跨平台的图形化FTP,SFTP和FTPS文件管理工具。通过大量直观的工具,FileZilla可以…