付诸行动,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" 复制代码
将appendonly
、appendfsync
和appendfilename
设置好并保存。重新启动 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> 复制代码
可以看到,成功添加了 rng
、edg
、ig
这三条记录,然后打开 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 复制代码
每一次的数据添加都被记录下来了。
那如果是删除操作呢,也会被记录下来么?
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 的描述:以日志的方式将数据变动记录下来。
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" 复制代码
可以看到,rng
和ig
都还在,意味着持久化是生效的。
作者:云享专家韦世东
链接:https://juejin.im/post/5bcab6f46fb9a05d3c802ea6
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 点赞
- 收藏
- 关注作者
评论(0)