Redis持久化笔记
Redis持久化
RDB Redis DataBase
在指定的时间内将内存中的数据以快照的形式写入磁盘,Redis启动时将快照文件直接读到内存中,还原数据库
在默认情况下,Redis将数据快照保存在dump.rbd中
RDB的触发机制
save 同步操作 会阻塞客户端命令
bgsave 异步操作 Redis会使用Linux系统的fock()单独创建一个子进程来进行持久化
自动生成RDB:
save <seconds> <changes> 表示在m秒内数据存在n次修改时,自动触发bgsave
例如:save 900 1 表示900 秒内如果至少有 1 个 key 的值变化,则保存
如果想禁用RDB策略,只要注释掉save行,或者给save传入一个空字符串参数也可以 save ""
RDB自动持久化规则
当 900 秒内有至少有 1 个键被改动时,自动进行数据集保存操作
save 900 1
当 300 秒内有至少有 10 个键被改动时,自动进行数据集保存操作
save 300 10
当 60 秒内有至少有 10000 个键被改动时,自动进行数据集保存操作
save 60 10000
RDB持久化文件名
dbfilename dump-
数据持久化文件存储目录
dir /var/lib/redis
bgsave发生错误时是否停止写入,通常为yes
stop-writes-on-bgsave-error yes
rdb文件是否使用压缩格式
rdbcompression yes
是否对rdb文件进行校验和检验,通常为yes
rdbchecksum yes
AOF Append Only File
全量备份(RDB)方式总是耗时的,有时候我们提供一种更加高效的方式AOF,工作机制很简单,
redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录
打开AOF方式:appendonly yes
每当有一个写命令过来时,就直接保存在我们的AOF文件中
AOF有三种触发机制
1.每修改同步 always 同步持久化 不丢失数据
2.每秒同步 everysec 异步持久化 丢1秒数据
3.不同步 no
对于同一份数据来说,AOF日志文件通常会逼RDB数据快照文件更大
AOF相关配置
开启AOF持久化方式
appendonly yes
AOF持久化文件名
appendfilename appendonly-
每秒把缓冲区的数据同步到磁盘
appendfsync everysec
数据持久化文件存储目录
dir /var/lib/redis
是否在执行重写时不同步数据到AOF文件
这里的 yes,就是执行重写时不同步数据到AOF文件
no-appendfsync-on-rewrite yes
触发AOF文件执行重写的最小尺寸
auto-aof-rewrite-min-size 64mb
触发AOF文件执行重写的增长率
auto-aof-rewrite-percentage 100

浙公网安备 33010602011771号