Redis:RDB重写和AOF重写


一.RDB

1.RDB文件用于保存和还原Rdix服务器所有数据库中的所有键值对数据

2.SAVE命令由服务器进程直接执行保存操作,会阻塞服务器。

3.BGSAVE命令由子进程执行保存操作,不会阻塞服务器。

4 服务器状态中会保存所有用save选项设置的保存条件,当任意一个保存条件被满足时,服务器会自动执行BGSAVE命令。

5 RDB文件是一个经过压缩的二进制文件,由多个部分组成。

6.对于不同类型的键值对,RDB文件会使用不同的方式来保存它们。



二.AOF

1 AOF文件通过保存所有修改数据库的写命令请求来记录服务器的数据库状态

2 命令请求会先保存到AOF缓冲区里面,之后再定期写入并同步到AOF文件。

3 appendfsync选项的不同值对AOF持久化功能的安全性一级Redis服务器的性能有很大影响。

always 每个事件都同步AOF  everysec 每隔一秒就要在子线程对AOF进行一次同步    no 何时同步由操作系统决定

4 服务器只要载入并重新执行保存在AOF文件中的命令,就可还原数据库。

5 AOF重写可以产生一个新的AOF文件,新AOF文件和原AOF保存的数据库状态一样,但体积更小

6 在执行BGREWRITEAOF命令时,Redis会维护一个AOF重写缓冲区,该缓冲区会在子进程创建新的AOF文件期间,记录服务器执行的所有写命令。当子进程完成创建新AOF文件之后,服务器会将重写缓冲区中的所有内容追加到新的AOF文件的末尾。最后,服务器用新的AOF文件替换旧的AOF文件,以此来完成AOF文件重写操作。


posted @ 2020-12-22 16:42  东老讨  阅读(483)  评论(0编辑  收藏  举报