redis学习笔记(四)--RDB持久化和AOF持久化

RDB

基本概念

RDB持久化是在指定的时间间隔内将内存中的数据集快照写入磁盘,至关于Snapshot快照,它恢复时是将快照文件直接读到内存里。redis

配置文件

clipboard.png

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

save命令将阻塞当前Redis服务器,知道RDB过程完成为止。
其配置再配置文件中设置。服务器

> save

生成的dump.rdb(默认文件名)会在启动的当前目录下。
命令已废弃。app

bgsave

Redis进程执行fork操做建立子进程,RDB持久化过程由子进程负责,完成后自动结束。spa

> bgsave

生成的dump.rdb文件同save命令。.net

恢复

> config get dir # 获取当前目录

而后把要恢复的dump.rdb(默认名称)文件放在目录下从新启动便可。日志

中止RDB

配置文件中止

把生成RDB文件时间注释掉便可。code

$ vim redis-config
# save 900 1           
# save 300 10         
# save 60 10000

手动中止

>  config set save ""

AOF

基本概念

AOF持久化以独立日志的方式记录每次写命令,重启时再从新执行AOF文件中的命令达到恢复数据的目的。blog

使用AOF

开启AOF功能须要设置配置:appendonly yes。默认不开启。

clipboard.png
也能够在redis-cli中设置:

> config set appendonly yes
> config get appendonly

clipboard.png

这里开启appendonly,而且把AOF文件保存为appendonly.aof
在Redis的配置文件中存在三种同步方式,它们分别是:

appendfsync always     # 每次有数据修改发生时都会写入AOF文件。
appendfsync everysec   # 每秒钟同步一次,该策略为AOF的缺省策略。
appendfsync no         # 从不一样步。高效可是数据不会被持久化。

clipboard.png

no-appendfsync-no-rewrite参数关闭虽然可能会形成主进程阻塞的问题,可是相对安全,不会丢失数据。缘由:https://blog.csdn.net/qinjie6...
clipboard.png

AOF的重写

AOF文件的大小随着时间的流逝必定会愈来愈大。Redis经过重写AOF的机制来缩小AOF文件的体积。
clipboard.png
AOF重写大体就是删除一些无心义的命令。
在Redis-cli中使用:

> bgrewriteaof

clipboard.png

加载AOF文件

在配置文件中参数appendfilename "XX.aof" 便可,Redis会自动加载。

相关文章
相关标签/搜索