Redis是内存数据库,如果不能将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能。
RDB
在指定时间间隔内将内存中的数据集快照写入磁盘dump.rdb文件,恢复时将快照直接读到内存。
Redis会单独创建一个子进程来进行持久化,会将数据写入到一个临时文件中,等持久化过程结束了,再将这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行IO操作的,保证了极高的性能。
如果需要进行大规模数据的恢复,且对数据的完整性不是特别敏感,那么RDB将比AOF的效率更高。默认为RDB方式。
AOF
将所有命令都记录下来,恢复时将命令全部执行一遍。
以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据库。
默认不开启AOF操作