Redis有三种方式持久化分别是RDB,AOF和混合模式。
RDB模式
Redis RDB的全称是 redis database ,定时将内存中的数据写入磁盘。实际过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩。
AOF模式
AOF模式的全称是Append Only File ,以日志的形式记录服务器的每一个修改和删除操作,查询不会记录,类似于mysql的binlog。
混合模式
Redis 4版本之后增加了混合持久化模式,混合模式则是结合 RDB模式和AOF模式两种方式持久化。
在Redis重启时,可以先加载RDB内容,然后再恢复增量AOF日志就可以完全替代之前的AOF全量文件恢复,提升重启效率。
混合持久化配置,需要开启aof
appendonly yes
aof-use-rdb-preamble yes # yes:开启,no:关闭
RDB和AOF对比
快照 | AOF |
---|---|
全量备份,一次保存整个数据库 | 增量备份,一次保存一个修改数据库的命令 |
保存时间间隔比较长 | 保存时间间隔默认一秒 |
数据还原快 | 数据还原慢 |
适合数据备份,默认开启 | 适合保存数据,默认关闭 |
save阻塞,bgsave不会阻塞 | 不会阻塞 |
启动优先级低 | 启动优先级高 |
体积小 | 体积较大 |
恢复速度快 | 恢复速度慢 |
数据安全性低,会丢失数据 | 数据安全性:根据策略决定 |
轻重:重 | 轻重:轻 |