三种方式:
RDB(Redis DataBase)方式——快照方式
AOF(Append Only File)文件追加方式
混合持久化(Redis4之后)
RDB(Redis DataBase)方式——快照方式
将内存数据以快照的方式写入二进制文件中,默认为dump.rdb
触发机制
手动触发
save命令(不推荐)会阻塞当前Redis服务器
bgsave命令:Redis进程执行fork指令创建子进程,由子进程实现RDB持久化,建议使用。
自动触发
save m n:表示m秒内数据集存在n次修改时会自动触发bgsave命令。
优点
RDB快照文件是一个紧凑压缩的二进制文件,经常用于备份,全量复制等场景,开发中可以每6小时bgsave一下,用于容灾备份。
RDB加载RDB恢复数据远远快于AOF方式
缺点
RDB无法做到实时持久化/秒级持久化,每次bgsave时第一需要fork子进程,频繁执行有时间成本。
RDB快照文件不用版本格式不一样,容易引起兼容问题。
AOF(Append Only File)——文件追加方式
记录所有的写命令到独立日志中,重启Redis时会重新执行AOF文件中记录的命令来达到恢复数据的目的,解决了数据持久化的问题。
3种文件同步策略:
appendfsync always——收到命令立刻写磁盘,不推荐
appendfsync everysec——每秒写入磁盘一次,在性能和持久化方面做了很好的折中。
appendfsync no——完全依赖os,一般来说是30s同步一次
混合持久化(Redis4之后)
先用RDB方式写入文件开头,再将后续操作命令以AOF的方式存入文件。即以RDB作为全量备份,AOF作为增量备份,提高备份效率。
参与讨论
(Participate in the discussion)
参与讨论