AOF和RDB都是redis的缓存方案。
RDB的思路是把内存中的缓存数据存到文件中,下次再打开redis服务时就重新加载到内存中去。
而AOF的思路是把服务器执行过的命令(读命令不算,因为读命令不会修改任何数据)都记录下来,存到文件中,下次再打开redis服务时就照着命令从之执行到尾,就可以达到恢复数据的目的。这种方式的弊端在于如果指令量比较大,那么恢复过程会很消耗时间。
如何使用AOF?
redis默认是关闭AOF的,我们需要在配置文件中将appendonly配置项设置为yes后,重启一下redis服务让配置生效。
如果AOF文件出错了怎么办?
AOF文件里记录的都是一些命令,还是比较容易看懂的,如果行数比较少的话可以人工去修复,如果比较多可以用redis给我们提供的修复工具来修复,我们在redis目录下运行redis-check-aof --fix appendonly.aof(这里appendonly.aof要替换成自己的aof文件名,默认都是这个)
同时开了aof和rdb会怎么样?
1、首先两个持久化都会正常工作,各自备份各自的数据
2、重新启动redis时会优先加载aof