redis的持久化方式

一、为什么要持久化?

Redis是内存数据库,如果不将内存中的数据保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失,所以redis提供了持久化功能。

二、持久化方式

1.rdb方式;

在指定的时间内,把内存中的数据持久写到磁盘、也就是snapshot快照,它恢复时是把内存文件直接读到内存里。

Redis会单独创建一个子进程来进行持久化,会先将数据写到一个临时文件中,待持久化过程结束了,再用这个临时文件代替上次持久化到的文件,整个过程中,主进程是不进行io操作的,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对于数据的完整性不是非常敏感,那么rdb比aof更加高效,rdb的缺点就是最后一次持久化的数据可能丢失。

触发方式:

1.Save规则满足的情况下,会触发rdb。

2.执行flushall ,会触发rdb。

3.退出redis,会触发rdb。

 

查看备份文件保存的路径


持久化文件

优点:

1.适合大规模的数恢复

2.对数据的完整性不高

缺点:

1、需要一定的时间间隔进行操作,如果redis意外宕机了,这个最后一次的数据就没了。

2、Fork进程的时候,会占用一定的空间。

2.aof方式:

AOP append only file,以日志的形式纪录每个操作,将redis执行过的指令都纪录下来(读操作不记录),只许追加文件,但不能改文件,redis启动之初会读取该文件重新构建数据,换言之,就是redis启动之初会根据日志的文件的内容,将写指令从前到后执行一次以完成数据的恢复工作。

优点:

每一次修改都同步,文件的完整性更好

每秒都同步一次,可能会丢失一秒的数据

从不同步,效率最高

2缺点:

相对与数据文件来说,aof远远大于rdb,恢复的速度也比慢。

Aof运行效率也比rdb慢,所以redis默认rdb.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容