xxx
二、AOF持久化的总结
## AOF持久化前期总结 01:AOF持久化默认是关闭了的,开启需要设置appendonly参数等于yes; 02:AOF持久时可以做到实时和秒级的数据持久,由appendfsync参数决定: everysec #表示每秒将内存中的数据追加到持久化文件中,默认值; always #每次将操作的数据追加到持久化文件中; no #表示redis不管它,让操作系统的刷新机制去决定; 03:AOF持久化的文件是可以直接查看和二次编辑的哈; 04:AOF持久化时是redis的主进程for出一个后台子进程来让其完成持久 化的工作;这样的好处是不影响redis主进程继续响应客户端的操作; 05:AOF持久化进行中不是直接往之前的持久化文件中进行追加,而是先往一个 临时文件中写,待写入完成后,再把临时文件中的内容追加到之前的持久化 文件中;这样的好处是避免在持久化的时候出现宕机/服,保证之前持久化 数据的完整性。 06:AOF持久化的文件中不是只记录数据,而是记录了执行的操作命令;这样AOF持 久化的文件就会越来越大,相比RDB持久化的文件要大很多,且在数据加载或 恢复时的速度要比RDB持久化的慢; 07:Redis中没有一个参数说先设置其AOF文件的最初大小,让其达到相应大小后, 自动再生成一个新的久化文件。那么AOF持久化的文件就一直只有一个文件 嘛?答案肯定不是的,它是由Redis的"重写"功能来完成;重写可以是手动和 自动来触发哈;后面说一说自动的原理; 08:AOF持久化的重写是通过bgrewriteaof命令触发后,redis主进程for出一个 后台子进程来完成AOF文件的重写工作;此时不会影响redis仅有的一个主进 程继续响应客户端的请求; 09:Redis什么时候会自动触发AOF持久化的重写功能呢; A:当AOF的持久化文件等于或大小auto-aof-rewrite-min-size设置的值, 该参数的默认值是64M:例如:auto-aof-rewrite-min-size 64mb B:我是想让它等于时进行重写呢还是说大于时进行重写呢?它是由 11:可以人工手动执行BGREWRITEAOF命令进行重写