加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长资讯 > 评论 > 正文

无畏宕机快速恢复的杀手锏

发布时间:2021-04-08 11:27:34 所属栏目:评论 来源:互联网
导读:edis 日志篇:无畏宕机与快速恢复的杀手锏 Redis 全景图 全景图可以围绕两个纬度展开,分别是: 应用维度:缓存使用、集群运用、数据结构的巧妙使用 系统维度:可以归类为三高 高性能:线程模型、网络 IO 模型、数据结构、持久化机制; 高可用:主从复制、哨

edis 日志篇:无畏宕机与快速恢复的杀手锏

Redis 全景图

全景图可以围绕两个纬度展开,分别是:

应用维度:缓存使用、集群运用、数据结构的巧妙使用

系统维度:可以归类为三高

  • 高性能:线程模型、网络 IO 模型、数据结构、持久化机制;
  • 高可用:主从复制、哨兵集群、Cluster 分片集群;
  • 高拓展:负载均衡

Redis 系列篇章围绕如下思维导图展开,这次从 《Redis 日志篇:无畏宕机与快速恢复的杀手锏》一起探索 Redis 的高性能、持久化机制的秘密。

 

观其实是至关重要的,从某种程度上说,在解决问题时,拥有了系统观,就意味着你能有依据、有章法地定位和解决问题。

RDB 内存快照,让宕机快速恢复

65 哥:Redis 因为某些原因宕机了,会导致所有的流量会打到后端 MySQL,我立马重启 Redis,可是它的数据存在内存里面,重启后如何还是没有任何数据,如何防止重启数据丢失呢?

65 哥别急,「码哥字节」带你一步步深入理解到底 Redis 宕机后如何快速恢复的。

Redis 数据存储在内存中,是否可以考虑将内存中的数据写到磁盘上呢?当 Redis 重启的时候就把保存在磁盘上的数据快速恢复到内存中,这样就能实现重启后正常提供服务了。

65 哥:我想到一个方案,每次执行「写」操作操作内存的同时写入到磁盘

这个方案有一个致命问题:每次写指令不仅写内存还是写入磁盘,磁盘的性能相对内存太慢,会导致 Redis 性能大大降低。

内存快照

65 哥:那如何规避这个同时写入的问题呢?

我们通常将 Redis 当作缓存使用,所以即使 Redis 没有保存全部数据,还可以通过数据库获取,所以 Redis 不会保存所有的数据, Redis 的数据持久化使用了「RDB 数据快照」的方式来实现宕机快速恢复。

65 哥:那什么是 RDB 内存快照呢?

在 Redis 执行「写」指令过程中,内存数据会一直变化。所谓的内存快照,指的就是 Redis 内存中的数据在某一刻的状态数据。

好比时间定格在某一刻,当我们拍照的,通过照片就能把某一刻的瞬间画面完全记录下来。

Redis 跟这个类似,就是把某一刻的数据以文件的形式拍下来,写到磁盘上。这个快照文件叫做 RDB 文件,RDB 就是 Redis DataBase 的缩写。

Redis 通过定时执行 RDB 内存快照,这样就不必每次执行「写」指令都写磁盘,只需要在执行内存快照的时候写磁盘。既保证了唯快不破,还实现了持久化,宕机快速恢复。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读