付诸行动,AOF 方式持久化的开启与配置

举报
我们都是云专家 发表于 2019/09/06 16:44:47 2019/09/06
【摘要】 AOF 如何恢复测试?

开启 AOF

默认是不开启 AOF 的,如果想要启用则需要到 redis.conf 配置文件中开启,打开 redis.conf:

$ vim redis.conf 复制代码

然后在文件中找到 appendonly 并将 no 改为 yes

appendonly yes 复制代码

即为开启了 AOF 方式的持久化。

设置同步方式

AOF 还有支持几种同步方式,它们分别是:

appendfsync always  # 每次有数据修改发生时都会写入AOF文件(安全但是费时)。 appendfsync everysec  # 每秒钟同步一次,该策略为AOF的缺省策略。 appendfsync no  # 从不同步。高效但是数据不会被持久化。 复制代码

默认配置是 everysec,你可以根据需求进行调整,这里我将配置改成 always

appendfsync always # appendfsync everysec # appendfsync no 复制代码

自定义 AOF 记录文件的文件名

Redis 设置有默认的文件名,在配置中显示为:

appendfilename "appendonly.aof" 复制代码

你可以让其保持默认名字,也可以指定其他的文件名,比如:

appendfilename "RNGLetme.aof" 复制代码

20190906ly00020.PNG

appendonlyappendfsyncappendfilename设置好并保存。重新启动 Redis 服务:


$./redis-server 复制代码

通过命令 ls 查看本地文件,可以看到新生成了一个名为 RNGLetme.aof 的文件,可以使用:

$cat RNGLetme.aof   复制代码

来查看里面的内容,由于当前未进行数据的改动,所以是空白的。

然后打开 Redis 的客户端:

$./redis-cli 复制代码

并且添加几条数据记录:

127.0.0.1:6379> set rng lpl OK 127.0.0.1:6379> set ig lpl OK 127.0.0.1:6379> set edg lpl OK 127.0.0.1:6379> keys * 1) "edg" 2) "rng" 3) "ig" 127.0.0.1:6379>  复制代码

可以看到,成功添加了 rngedgig 这三条记录,然后打开 RNGLetme.aof 文件,看看里面的记录:

*2 $6 SELECT $1 0 *3 $3 set $3 rng $3 lpl *3 $3 set $2 ig $3 lpl *3 $3 set $3 edg $3 lpl 复制代码

20190906ly00021.PNG

每一次的数据添加都被记录下来了。


那如果是删除操作呢,也会被记录下来么?

127.0.0.1:6379> del edg (integer) 1 127.0.0.1:6379> keys * 1) "rng" 2) "ig" 127.0.0.1:6379>  复制代码

执行完删除操作后,再看一看 RNGLetme.aof 文件中的记录:

*2 $6 SELECT $1 0 *3 $3 set $3 rng $3 lpl *3 $3 set $2 ig $3 lpl *3 $3 set $3 edg $3 lpl *2 $3 del $3 edg 复制代码


对比之前的记录,新增了del edg的操作记录。这就印证了之前对 AOF 的描述:以日志的方式将数据变动记录下来。

20190906ly00022.PNG

AOF 恢复测试

下面同样是通过 kill 命令模拟 Redis 异常关闭:

gannicus@$ kill -9 22645 复制代码

然后再重新启动 Redis 服务:

$ src/redis-server redis.conf 复制代码

接着通过客户端看一看,那些数据是否都在:

$ src/redis-cli 127.0.0.1:6379> keys * 1) "ig" 2) "rng" 复制代码

20190906ly00023.PNG

可以看到,rngig都还在,意味着持久化是生效的。
作者:云享专家韦世东
链接:https://juejin.im/post/5bcab6f46fb9a05d3c802ea6
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。