redis持久化

2018-05-12  本文已影响21人  木驴的天空

为了保障数据的安全,redis支持两种持久化方式将数据持久化至硬盘:快照和AOF。

快照持久化

快照(snapshotting),它可以将某一时间点所有数据写入硬盘。创建快照后,用户可以备份快照到其他服务器,也可以用恢复数据。如果服务器崩溃,redis将丢失最近一次创建快照之后所有写入的数据。
可以通过配置,也可以通过命令触发:

如果redis内存达几十GB时,bgsave创建子进程耗时会比较长,可能会导致系统长时间地停顿,也可能导致swap。

AOF持久化

只追加文件(append-only file,AOF),它会在执行写命令时,将被执行的写命令写入硬盘。
appendfsync支持三种值:

通常默认值是比较合理的选项,即便是系统发生崩溃也只会丢失一秒之内产生的数据。AOF持久化将丢失数据的时间窗口降低至1秒(甚至不丢失任何数据),又可以在极短的时间内完成持久化。
AOF在不断增长的情况下,体积会不断增大,redis支持压缩(重写)AOF文件,使AOF文件体积尽可能小。重写会删除旧的AOF,生成新的AOF。

配置

# 快照持久化选项
save 60 1000  //从上一次创建快照起,60s内,有1000次写入触发bgsave(不是save)
stop-writes-on-bgsave-error no //创建快照失败后是否仍然执行写命令
rdbcompression yes   //是否对快照压缩
dbfilename dump.rdb //快照文件名

# aof持久化选项
appendonly no   //是否开启aof
appendfsync everysec   //持久化周期
no-appendsync-on-rewirte no  //aof自动执行开关
auto-aof-rewrite-percentage 100 //压缩条件
auto-aof-rewrite-min-size 64mb //压缩条件

dir ./   //保存位置
上一篇下一篇

猜你喜欢

热点阅读