RDB
1.RDB文件用于保存和还原redis服务器所有数据库中的所有键值对数据
2.SAVE命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器
3.BGSAVE命令由子进程执行保存操作,所以该命令不会阻塞服务器
4.服务器状态中会保存所有用save选项设置的保存条件,当任意一个保存条件被满足时,服务器会自动执行BGSAVE
5.RDB文件是一个经过压缩的二进制文件,由多个部分组成
6.对于不同类型的键值对,RDB文件会使用不同的方式来保存它们
AOF
1.AOF文件通过保存所有修改数据库的写命令请求来记录服务器的数据库状态
2.AOF文件中的所有命令都以redis命令请求协议的格式保存
3.命令请求会保存到AOF缓冲区里面,之后再定期写入并同步到AOF文件
4.appendfsync选项的不同值对AOF持久化功能的安全性以及redis服务器的性能有很大的影响
5.服务器只要载入并重新执行保存再AOF文件中的命令,就可以还原数据库本来的状态。
6.AOF重写可以产生一个新的AOF文件,这个新的AOF文件和原有的AOF文件所保存的数据库状态一样,但体积更小
7.AOF重写是一个有歧义的名字,该功能是通过读取数据库中的键值对来实现的,程序无须对现有AOF文件进行任何读入,分析和写入操作
8.在执行BGREWRITEAOF命令时,redis服务器会维护一个AOF重写缓冲区,该缓冲区会再子进程创建新AOF文件期间,记录服务器执行的所有写命令。当子进程完成创建新AOF文件的工作之后,服务器会将重写缓冲区中的所有内容追加到新AOF文件的末尾,使得新旧两个AOF文件所保存的数据库状态一致。最后,服务器用新的AOF文件替换旧的AOF文件,以此来完成AOF文件重写操作。