Redis持久化:
RDB
触发机制:
1.save的规则满足的情况下,会自动触发rdb规则
2.执行flushall命令,也会触发rdb规则
3.退出redis,也会产生rdb文件
备份就会自动生成一个rdb文件dump.rdb
恢复rdb文件,只需要将dump.rdb文件放到redis 的启动目录(config get dir命令查看,一般为/usr/local/bin)下就行了,redis启动时会自动检查dump.rdb恢复其中的数据
优点:
1.适合大规模的数据恢复
2.对数据的完整星要求不高
缺点:
1.需要一定的时间间隔进程操作,如果redis 意外宕机,这个最后一次修改数据就没了
2.fork进程的时候会占用内存空间
AOF
将我们的命令全部记录下来,history,恢复的时候就把这个文件全部都执行一遍
默认是不开启的我们需要手动配置,只需要将appendonly改为yes就开启了,重启,redis就可以生效了
如果这个aof文件有错误,这时候redis不能启动,我们需要修复这个aof文件,redis 给我们提供了一个工具 redis-check-aof --fix appendonly.aof。
如果文件正常重启就可以直接恢复了!
优点:
1.每一次修改都同步,文件完整会更加好
2.每秒都同步一次,可能会丢失一秒的数据
3.从不同步,效率是最高的
缺点:
1.相对于数据文件来说,aof远远大于rdb,修复速度也比rdb慢
2.aof运行效率也比rdb慢,所以我们redis默认的持久化配置就是rdb