超简单!Redis中的持久化策略汇总

超简单!Redis中的持久化策略汇总

? 作者:知识浅谈,CSDN博客专家,华为云云享专家,阿里云签约博主,InfoQ签约博主
? 擅长领域:全栈工程师、爬虫、ACM算法
? 公众号:知识浅谈

?Redis中的持久化策略方式汇总?

正菜来了⛳⛳⛳

?AOF方式

AOF:是以日志记录的形式记录数据的更新操作,这种方法的持久性更好,一致性更强,因为几乎能够保存redis 的每一步操作了。

? AOF持久化策略

  • always:这个指的是每一次操作之后都是要持久化到aof文件中去的,所以就算是极端的情况下也最多丢失一条更新。
  • everysec:这个是每秒都会把aof缓冲中的数据持久化到aof文件中去的,所以最多也是丢失一秒的数据更改。
  • no:这个策略是不做任何操作,有操作系统决定什么时候去把aof缓存持久化到aod文件,这个放生异常的时候相比于上边的两个丢失的数据相对较多。

?AOF重写

默认redis是RDB的形式,如果想要使用AOF的形式,
​appendonly yes 这个是开启aof持久化的命令。​​本来aof持久化的时候是需要把对redis进行修改的每一个操作都写到文件中去的,但是因为aof存储的命令较多的时候,需要对aof文件进行重写,这个重写是指的是bgrewriteaof,创建一个子线程根据当前内存中redis的数据重新写一份aof文件,原来的aof文件就丢弃了。

?RDB方式

RDB:是以镜像的方式记录某个时刻redis中的每个数据,可以通过bgsave命令,使用一个子线程去创建一个某个时刻的redis中的数据的镜像,当bgsave命令的执行的时候redis中的数据是read-only状态,如果主线程要修改的时候发生缺页中断,会在其他空间先写入数据,等持久化之后再把刚才的数据进行更新。

?RDB+AOF:是两种方式的混合方式

在RDB持久化之后使用aof进行记录来保证尽量做到数据的一致性,在还原数据的时候,先用rdb还原基本的数据,再使用aof中的日志去redis中进行操作。

?性能比较:

RDB:还原数据快,占用空间小,但是完整性低。

AOF:完整性高,但是占用空间相比于RDB的形式较大,还原数据的时间较长。

?总结

发表评论

相关文章