redis 持久化 AOF
通过上面两篇文章,我们知道了redis进行持久化方案中,redis提供了两种方式,RDB方式是通过对redis内存中的数据进行快照备份的,由于rdb持久化方案有一个明显的劣势,那就是无法保证数据的一致性,因此官方提供了另外一种持久化方式进行补充,那就是AOF持久化方式。
AOF:Append-only file,通过字面意思它是一个追加(append)文件,指的是它采用日志的形式记录着redis每个插入更新操作,并追加到文件末尾中。因此这个日志文件保存了所有redis的变更和插入操作,通过日志文件即可完成redis数据库的恢复。正是由于AOF采用日志记录数据,所以它可以完美弥补RDB的缺点。
但是AOF采用日志记录操作,所以AOF文件一般要比rdb快照文件要大很多,而且进行恢复的时间也会比rdb慢些。
开启AOF持久化步骤
1、redis 默认是不开启AOF的,想要打开,需要在redis.conf文件中找到APPEND ONLY MODE配置模块,通过修改相应的参数进行打开AOF持久化,和对AOF做一些其它配置。如下图:
2、通过上图可以发现,redis AOF的默认配置参数中,AOF持久化是关闭的,需要把它修改为:appendonly yes,才能打开。
appendonly yes
3、指定保存AOF日志的文件名,默认是 appendonly.aof。
appendfilename "appendonly.aof"
4、指定触发日志的更新条件(更新机制),默认配置如下:
# appendfsync always appendfsync everysec # appendfsync no
解释说明:
always:指的是 同步持久化,每次发送数据的变更或者插入,就会追加写入到日志文件中。这种方式是比较频繁的,虽然是安全系数最高的,但是耗时也是最久的。
everysec:指的是 异步持久化,即每秒异步执行一下变更操作日志的追加插入。这个是官方推荐的方式。
no:不同步。
5、配置重写机制触发机制。
auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb
解释说明:通过AOF持久化的机制我们可以明显发现,那就是随着redis持续使用,aof日志文件肯定会越来越大。所以redis官方提供了重写机制来讲解这个问题。当日志文件超过配置文件中设定的阀值时,redis就会fork出一个子进程读取内存中的数据,重新写入到一个临时的日志文件当中,然后替换掉旧的AOF文件。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论