Redis的持久化方案
由于本人之前项目主要使用redis进行业务场景的设计,并且也涉及到了redis的持久化方案。特此写这篇文章来归纳总结。由于之前有对Redis的大体介绍,因此在此对Redis的其他问题不做过多的研究,本篇文章专注于对于Redis持久化方案的研讨。
一、Redis的持久化简介
顾名思义,就是将Redis中存的数据存在磁盘当中。这样的好处是当Redis宕机时,就不再需要去数据库中读取数据存入Redis中了,就只需要加载持久化文件即可。除此之外,再部署Redis集群的时候,从机也是通过复制文件的方式进行数据的同步。当然既然存在了磁盘当中,那肯定也会占用一定量的磁盘空间。但目前互联网对于时间空间的抉择策略,一般都会去浪费一些空间去提升一些时间。
二、Redis持久化的方式
在Redis官网中介绍到,Redis的持久化方案分为RDB和AOF两种形式(有点MySQL那味儿了)。以下会对Redis持久化的两种方案分别进行讲解。
(1).RDB
RDB持久化方式就是对你Redis当中的数据进行快照,用更通俗的话来说,假设将Redis当中所有的数据都写在一张纸上,然后用照相机给这张纸拍个照片。将图片放到磁盘上就是持久化后的.rdb文件了。那如果纸上的数据会进行改动怎么办呢?那就再拍一张照片呗。那怎么知道数据会进行改动呢?那就定时每隔一段时间拍一次呗。因此,要是在Redis宕机前更改了数据但是没有拍照,那么这些数据的更改操作将会丢失,所以说RDB持久化的方式可能会导致数据的丢失,因此有了AOF的方式(下文会提到)。
那么计算机是怎么对Redis中的数据"拍一