Redis 的持久化 启动AOF功能的正确方式

Posted y_zilong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 的持久化 启动AOF功能的正确方式相关的知识,希望对你有一定的参考价值。

AOF:按照操作顺序依次将操作追加到指定的日志文件末尾

AOF和RDB一样使用了写时复制机制,AOF默认为每秒钟fsync一次,即将执行的命令保存到AOF文件当中,这样即使redis服务器发生故障的话最多只丢失1秒钟之内的数据,也可以设置不同的fsync策略always,即设置每次执行命令的时候执行fsync,fsync会在后台执行线程,所以主线程可以继续处理用户的正常请求而不受到写入AOF文件的I/O影响

同时启用RDB和AOF,进行恢复时,默认AOF文件优先级高于RDB文件,即会使用AOF进行恢复

 注意:AOF模式默认是关闭的,第一次开启AOF后,并重启服务生效后,会因为AOF的优先级高于RDB,而AOF默认没有文件存在,从而导致所有数据丢失

AOF rewrite重写
将一些重复的,可以合并的,过期的数据重新写入一个新的AOF文件,从而节约AOF备份占用的硬盘空间,也能加速恢复过程 

 1启用AOF功能的正确方式

[root@cent8_yzl_10 ~]# ll /apps/redis/data/dump.rdb 
-rw-r--r-- 1 redis redis 187886 Jun 30 09:15 /apps/redis/data/dump.rdb
[root@cent8_yzl_10 ~]# redis-cli -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> CONFIG GET appendonly
1) "appendonly"
2) "no"
127.0.0.1:6379> CONFIG SET appendonly yes
OK
127.0.0.1:6379> exit
[root@cent8_yzl_10 ~]# ll /apps/redis/data/
total 368
-rw-r--r-- 1 redis redis 187886 Jun 30 09:16 appendonly.aof
-rw-r--r-- 1 redis redis 187886 Jun 30 09:15 dump.rdb
[root@cent8_yzl_10 ~]# vim /apps/redis/etc/redis.conf 
appendonly yes 改为yes

#config set appendonly yes 可以同时看到下面显示
[root@cent8_yzl_10 ~]# pstree -p |grep redis-server ; ls /apps/redis/data/ -l
           |-redis-server(33778)-+-{redis-server}(33779)
           |                     |-{redis-server}(33780)
           |                     |-{redis-server}(33781)
           |                     |-{redis-server}(33782)
           |                     |-{redis-server}(74727)
           |                     `-{redis-server}(74728)
total 368
-rw-r--r-- 1 redis redis 187886 Jun 30 09:16 appendonly.aof
-rw-r--r-- 1 redis redis 187886 Jun 30 09:15 dump.rdb
AOF相关配置
[root@cent8_yzl_10 ~]# vim /apps/redis/etc/redis.conf 
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

手动执行AOF重写 BGREWRITEAOF 命令
[root@cent8_yzl_10 ~]# redis-cli -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> bgrewriteaof
Background append only file rewriting started
127.0.0.1:6379> 

2开启RDB和AOF

[root@cent8_yzl_10 redis]# vim etc/redis.conf 
save 900 1     #在900秒内有1个key内容发生更改,就执行快照机制
save 300 10     #在300秒内有10个key内容发生更改,就执行快照机制
save 60 10000    #60秒内如果有10000个key以上的变化,就自动快照备份
appendonly yes   #开启AOF模式

以上是关于Redis 的持久化 启动AOF功能的正确方式的主要内容,如果未能解决你的问题,请参考以下文章

Redis RDB 和 AOF 对比,恢复优先级

redis 系列17 持久化 AOF

redis 系列17 持久化 AOF

Redis理论知识——redis持久化(RDBAOF)

Redis数据持久化方式RDB和AOF的区别

Redis AOF持久化和RDB持久化区别