? 作者:知识浅谈,CSDN博客专家,华为云云享专家,阿里云签约博主,InfoQ签约博主
? 擅长领域:全栈工程师、爬虫、ACM算法
? 公众号:知识浅谈
?Redis中的持久化策略方式汇总?
正菜来了⛳⛳⛳
AOF:是以日志记录的形式记录数据的更新操作,这种方法的持久性更好,一致性更强,因为几乎能够保存redis 的每一步操作了。
默认redis是RDB的形式,如果想要使用AOF的形式,
appendonly yes 这个是开启aof持久化的命令。
本来aof持久化的时候是需要把对redis进行修改的每一个操作都写到文件中去的,但是因为aof存储的命令较多的时候,需要对aof文件进行重写,这个重写是指的是bgrewriteaof,创建一个子线程根据当前内存中redis的数据重新写一份aof文件,原来的aof文件就丢弃了。
RDB:是以镜像的方式记录某个时刻redis中的每个数据,可以通过bgsave命令,使用一个子线程去创建一个某个时刻的redis中的数据的镜像,当bgsave命令的执行的时候redis中的数据是read-only状态,如果主线程要修改的时候发生缺页中断,会在其他空间先写入数据,等持久化之后再把刚才的数据进行更新。
在RDB持久化之后使用aof进行记录来保证尽量做到数据的一致性,在还原数据的时候,先用rdb还原基本的数据,再使用aof中的日志去redis中进行操作。
RDB:还原数据快,占用空间小,但是完整性低。
AOF:完整性高,但是占用空间相比于RDB的形式较大,还原数据的时间较长。