RDB持久化是在指定的时间间隔内将内存中的数据集快照写入磁盘,至关于Snapshot快照,它恢复时是将快照文件直接读到内存里。redis
RDB的配置通常在196行左右开始。vim
save 900 1 #在900秒(15分钟)以后,若是至少有1个key发生变化,则dump内存快照。 save 300 10 #在300秒(5分钟)以后,若是至少有10个key发生变化,则dump内存快照。 save 60 10000 #在60秒(1分钟)以后,若是至少有10000个key发生变化,则dump内存快照。
视状况启用。安全
save
命令将阻塞当前Redis服务器,知道RDB过程完成为止。
其配置再配置文件中设置。服务器
> save
生成的dump.rdb(默认文件名)会在启动的当前目录下。
命令已废弃。app
Redis进程执行fork操做建立子进程,RDB持久化过程由子进程负责,完成后自动结束。spa
> bgsave
生成的dump.rdb文件同save
命令。.net
> config get dir # 获取当前目录
而后把要恢复的dump.rdb(默认名称)文件放在目录下从新启动便可。日志
把生成RDB文件时间注释掉便可。code
$ vim redis-config # save 900 1 # save 300 10 # save 60 10000
> config set save ""
AOF持久化
以独立日志的方式记录每次写命令,重启时再从新执行AOF文件中的命令达到恢复数据的目的。blog
开启AOF功能须要设置配置:appendonly yes
。默认不开启。
也能够在redis-cli中设置:
> config set appendonly yes > config get appendonly
这里开启appendonly
,而且把AOF文件保存为appendonly.aof
。
在Redis的配置文件中存在三种同步方式,它们分别是:
appendfsync always # 每次有数据修改发生时都会写入AOF文件。 appendfsync everysec # 每秒钟同步一次,该策略为AOF的缺省策略。 appendfsync no # 从不一样步。高效可是数据不会被持久化。
no-appendfsync-no-rewrite
参数关闭虽然可能会形成主进程阻塞的问题,可是相对安全,不会丢失数据。缘由:https://blog.csdn.net/qinjie6...。
AOF文件的大小随着时间的流逝必定会愈来愈大。Redis经过重写AOF的机制来缩小AOF文件的体积。
AOF重写大体就是删除一些无心义的命令。
在Redis-cli中使用:
> bgrewriteaof
在配置文件中参数appendfilename "XX.aof"
便可,Redis会自动加载。