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

拟墨画扇 提交于 2020-11-10 05:37:10

这是我的第 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】

近期热文

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


朕已阅 

本文分享自微信公众号 - Java中文社群(javacn666)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!