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-.rdb

数据持久化文件存储目录

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-.aof

每秒把缓冲区的数据同步到磁盘

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

posted @ 2022-07-22 14:17  Chen_Ken  阅读(61)  评论(0)    收藏  举报