持久化操作

时点快照

Rdb除了时点快照,还进行了持久化的命令,rdb的优点是不占用内存

缺点是会丢失数据,并且会造成阻塞。

AOF:追加新的指令,而不是覆盖。

AOF可以做到实时的进行备份,不丢失任何数据,可允许范围内的丢失。

Buffer缓冲区

AOF写到缓冲区是写到系统内核的缓冲区,

先把内容写到缓冲区。

三种写入策略:

Always:每写一次调用一次缓冲区方法

Everysec(默认):每秒进行一次持久化的操作,丢失数据,最多丢失的是一秒的数据。。加入内存的缓冲区小于一秒,则丢失的数据是一个缓冲区的数据,而且兼顾了整个内存数据的效率。

No:操作系统内存满了的时候才写。

 

AOF文件重写机制,利用fork调用子进程,专门进行文件重写,

Aof--->临时

新的文件产生之后,老的文件

Editlog每一个小时或者64M进行一次持久化的操作。

扩容的百分比,数组拷贝,

AOF压缩——————>aof压缩(64M,压缩成32M),传递进来的新的AOF会替代老的AOF

不断地传递新的文件,当AOF再次达到64M的时候,再次压缩,再次压缩时是将新的文件再压缩,新的文件加上次压缩的老的AOF文件,多次循环成64M,这时AOF不能再压缩,造成死循环,这时就需要扩容

两个属性的原因,

一个是处发量:

另一个是:

AOF的优点:如果误造作了(flushall),马上停服务,还可以恢复。

缺点:相同的数据集,AOF文件体积较RDB大了很多

恢复数据速度较RDB慢。

AOF持久化操作

相关文章: