无畏宕机快速恢复的杀手锏
edis 日志篇:无畏宕机与快速恢复的杀手锏 Redis 全景图 全景图可以围绕两个纬度展开,分别是: 应用维度:缓存使用、集群运用、数据结构的巧妙使用 系统维度:可以归类为三高
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 内存快照,这样就不必每次执行「写」指令都写磁盘,只需要在执行内存快照的时候写磁盘。既保证了唯快不破,还实现了持久化,宕机快速恢复。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |