AOF 工作原理
当你使用Redis做一些事情,都会把你做的事情写到一个文本文件上。
配置:
appendonly 这个是aof日志功能 是否打开 yes
我们在使用AOF是如何在写入速度和数据持久化上,起一个平衡方案,这里可以使用
appendfsync always : 每1个命令都立刻同步到AOF 安全,速度慢
no : 写入工作交给操作系统,由于操作系统判断缓冲区大小,统一写入AOF,同步频率低,速度快。
eveysec : 折衷方案,每秒写一次
no-appendfsync-on-rewrite yes: # 正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写 (bgrewriteaof 重写命令)
面试常问:
注: 在dump rdb过程中,aof如果停止同步,会不会丢失?
答: 不会,所有的操作缓存在内存的队列里, dump完成后,统一操作.
注: aof重写是指什么?
答: aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里 以解决 aof日志过大的问题.
问: 如果rdb文件,和aof文件都存在,优先用谁来恢复数据?
答: rdb rdb恢复数据快
问: 2种是否可以同时用?
答: 可以,而且推荐这么做
问: 恢复时rdb和aof哪个恢复的快
答: rdb快,因为其是数据的内存映射,直接载入到内存,而aof是命令,需要逐条执行