Redis的持久化策略

Redis提供了两种持久化策略: RDB 和 AOF 

1.1RDB 持久化-默认持久化方式

1.如何设置文件名称

通过redis.conf中的dbfilename设置

默认值:dbfilename "dump.rdb"

2.如何设置快照存放的位置

通过redis.conf 中的dir设置

默认值:dir ./ 表示在执行redis-server 命令目录下生成文件

3.快照(RDB持久化) 策略配置

save 900 1 900秒内有一个修改就执行持久化
save 300 10 300秒内有10个修改就执行持久化
save 60 10000 60秒内有一万个修改就执行持久化

自己定义一个5秒内有一个change就可以被修改就触发的RDB持久化

save 5 1 

随便从建立的cli 里面写一点东西做出change来触发持久化,产生的log

4073:M 01 Nov 2021 09:28:07.392 * 1 changes in 4 seconds. Saving...
4073:M 01 Nov 2021 09:28:07.393 * Background saving started by pid 4102
4102:C 01 Nov 2021 09:28:07.397 * DB saved on disk
4102:C 01 Nov 2021 09:28:07.399 * RDB: 4 MB of memory used by copy-on-write
4073:M 01 Nov 2021 09:28:07.493 * Background saving terminated with success

4.RDB持久化的过程

RDB持久化是Redis定期将内存中的 数据集快照 写入磁盘,实际操作过程是主进程创建一个子进程, 先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储,整个过程 主进程 不 进行任何IO操作,保证Redis的高效性。

5.RDB持久化的触发方式

自动触发和手动触发

自动触发即为 从 redis.conf 中配置即可

手动方式; 

       save 和 bgsave 

save 会阻塞redis 服务因为是主线程自己进行RDB操作,执行命令期间redis 不能去处理其他的命令,直到RDB过程完成为止.

4073:M 01 Nov 2021 09:33:34.693 * DB saved on disk

bgsave 执行该命令,Redis 会在后台异步进行快照操作,做快照的同时还可以响应客户端请求,此时Redis主进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束.阻塞只会发生在fork阶段,一般时间都很短暂.

4073:M 01 Nov 2021 09:34:35.537 * Background saving started by pid 4112
4112:C 01 Nov 2021 09:34:35.543 * DB saved on disk
4112:C 01 Nov 2021 09:34:35.545 * RDB: 6 MB of memory used by copy-on-write
4073:M 01 Nov 2021 09:34:35.644 * Background saving terminated with success

1.2 AOF 持久化

 AOF持久化以日志的形式 记录服务器所处理的每一个写操作和删除操作,以文本的方式记录,可以打开文件看到详细的操作记录.

1.AOF文件名称设置

使用redis.conf 中的 appendfilename 设置

默认设置: appendfilename "appendonly.aof" 

2.如何开启AOF持久化

使用 redis.conf 中的 appendonly yes 设置

默认设置;appenonly no 表示不开启 aof 持久化

3.AOF文件存放的位置

在redis.conf 中的 dir 设置

默认值: dir ./ 表示在执行 redis-server 命令的目录下生成文件

4.Redis 支持三种同步AOF文件的策略

通过redis.conf中的 appendfsync 设置

1.no 不进行同步,依靠操作系统来进行同步,Faster

2.always ;always表示每次有写操作都进行同步.Slow,Safest.

3.everysec:表示对写操作进行积累,每秒同步一次.Compromise (默认方案,最合适的方案)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值