美文网首页
Redis持久化AOF

Redis持久化AOF

作者: JohnLi_7258 | 来源:发表于2019-04-24 18:09 被阅读0次

一.RDB有哪些问题?

1.耗时

2.好性能

3.不可控容易丢失数据

二.AOF持久化

以日志形式记录服务器每一个操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。

三.AOF的三种策略

redis 写命名时,把日志不是直接写在磁盘中,而是写在缓冲区中,然后根据策略刷新在磁盘中

1.always,

2.everysec 每秒刷新到磁盘(默认)

3.no 根据操作系统来决定

这三种策略的对比

四.AOF重写

1. 随着命令不断从AOF缓存中写入到AOF文件中,AOF文件会越来越大,为了解决这个问题,Redis引入了AOF重写机制来压缩AOF文件。

2. AOF文件的压缩和RDB文件的压缩原理不一样,RDB文件的压缩是使用压缩算法将二进制的RDB文件压缩,而AOF文件的压缩主要是去除AOF文件中的无效命令,比如说:

3. 同一个key的多次写入只保留最后一个命令

4. 已删除、已过期的key的写命令不再保留

AOF重写的触发机制也分为手动触发和自动触发两种方式。

#手动触发

执行bgrewriteaof命令直接触发AOF重写

#自动触发

在redis.config配置文件中有两个配置项

1.auto-aof-rewrite-min-size 64MB    当AOF文件小于64MB的时候不进行AOF重写

2.auto-aof-rewrite-min-percenrage 100    当当前AOF文件比上次AOF重写后的文件大100%的时候进行AOF重写

可以在redis.conf配置文件中添加这两个参数来自动触发AOF重写,执行bgrewriteaof命令

五.配置

六.Redis重启时加载持久化文件的顺序

1.Redis重启的时候优先加载AOF文件,如果AOF文件不存在再去加载RDB文件。

2.如果AOF文件和RDB文件都不存在,那么直接启动。

3.不论加载AOF文件还是RDB文件,只要发生错误都会打印错误信息,并且启动失败

七.总结

关于Redis的两种持久化方式到这里就介绍完了,这里再总结一下:

1. RDB持久化基于内存快照存储二进制文件,AOF持久化基于写命令存储文本文件。

2.RDB文件采用了压缩算法,比较小;AOF文件随着命令的叠加会越来越大,Redis提供了AOF重写来压缩AOF文件。

3. 恢复RDB文件的速度比AOF文件快很多。

4.RDB持久化方式实时性不好,所以AOF持久化更主流。

5.合理的使用AOF的同步策略,理论上不会丢失大量的数据。

相关文章

网友评论

      本文标题:Redis持久化AOF

      本文链接:https://www.haomeiwen.com/subject/ozxngqtx.html