这是我的第 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面试题

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

朕已阅 

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

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

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

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

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

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

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

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

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

  5. Redis的主从复制与高可用搭建(哨兵模式)

    前言 为什么要使用Redis 首先我们先介绍些redis的基本概念,redis是Nosql数据库,是一个key-value存储系统.虽然redis是key-value的存储系统,但是redis支持的v ...

  6. 使用Sentinel配置Redis 3.x主从高可用服务

    Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实 ...

  7. redis 系列26 Cluster高可用 (1)

    redis 系列26 Cluster高可用 (1) 原文:redis 系列26 Cluster高可用 (1) 一.概述 Redis集群提供了分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故 ...

  8. 解说redis中如何实现高可用

    redis中为了实现高可用(High Availability,简称HA),采用了如下两个方式: 主从复制数据. 采用哨兵监控数据节点的运行情况,一旦主节点出现问题由从节点顶上继续进行服务. 主从复制 ...

  9. redis 系列27 Cluster高可用 (2)

    redis 系列27 Cluster高可用 (2) 原文:redis 系列27 Cluster高可用 (2) 一. ASK错误 集群上篇最后讲到,对于重新分片由redis-trib负责执行,关于该工具 ...

最新文章

  1. 客户端dmesg_打印调试技术 printk klogd dmesg(解决打印信息的问题)
  2. golang map 排序
  3. 应用调试(四)系统调用SWI
  4. 火星今天飞抵西非国家寻找埃博拉疫情
  5. Atitit 图像处理的心得与疑惑 attilax总结
  6. 今晚直播 | 从编码器与解码器端改进生成式句子摘要
  7. C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践
  8. kotlin和java差别_Kotlin和Java的常用方法的区别总结
  9. 自从用了这几个网站后,linux下的开发(使用)更加简单化
  10. jmap查看java进程占用的数据库连接数
  11. Vue3学习之第二节:ref函数、reactive函数
  12. 忽略“Signal: SIGSEGV (Segmentation fault)”
  13. Go 性能优化技巧 4/10
  14. 基于51单片机交通灯程序设计与仿真
  15. android 图片置顶,Android布局图片置顶
  16. 模数转换器(ADC)
  17. 计算机性能检查方法,测试电脑性能的方法步骤详解
  18. Hibernate第五篇【inverse、cascade属性详解】
  19. PNAS|助人为乐—助人行为能减轻自身身体疼痛
  20. Hive 表常用查询语句-总结

热门文章

  1. 公司台湾主站的url重写
  2. vue-router之路由钩子(八)
  3. C# Collection was modified;enumeration operation may not execute
  4. 上市公司行情查询站点
  5. AsyncHttpClien访问网络案例分析
  6. 机房收费重构之总结篇
  7. py 字典添加多个value_# Python 3 # Python 3字典Dictionary(1)
  8. oracle数据库抽取到gp,Oracle迁移数据到Greenplum
  9. python树莓派 是什么_用树莓派和Python给你的植物浇水
  10. arithmetic java_Java:Arithmetic