Redis 的持久化机制

本文涉及:Redis的全量备份方式RDB和增量备份方式AOF的相关内容

全量备份RDB

RDB持久化触发方式

触发RDB持久化的过程分为手动触发和自动触发两种方式

手动触发:

  • ·save命令:阻塞当前Redis服务器,直到RDB过程完成为止,除非是没有任何服务在使用此redis,否则千万不要使用此命令进行备份

  • bgsave命令:Redis进程执行fork操作创建子进程,由子进程负责持久化,这个生产环境是可以使用的。

自动触发:

  • 从节点执行全量复制操作时,主节点自动执行bgsave生成RDB文件并发送给从节点

  • 执行debug reload命令重新加载Redis时,也会自动触发bgsave操

  • 默认情况下执行shutdown命令时,如果没有开启AOF持久化功能则自动执行bgsave。

RDB持久化文件

RDB文件默认保存在配置文件中dir属性(./)指定的目录下,以dbfilename(dump.rdb)属性指定的文件名命名

Redis默认采用LZF算法对生成的RDB文件做压缩处理。取消压缩处理可以按照如下方式修改配置

rdbcompression no

增量备份AOF

AOF持久化文件

AOF持久化默认不开启,按照如下方式修改配置可开启AOF持久化

appendonly yes

RDB文件默认保存在配置文件中dir属性(./)指定的目录下,以appendfilename(appendonly.aof)属性指定的文件名命名

AOF文件同步策略

Redis提供了多种AOF缓冲区同步文件策略,由参数appendfsync控制:

  • always,每次写入都要同步AOF文件。Redis本身是纯内存操作,你要是每次写入都要写磁盘那就没有任何意义了

  • no,将同步操作交由操作系统负责,操作系统保证30秒内进行。同步时间不确定,则数据安全也无法让人放心

  • everysec,默认配置,每秒进行一次,生产环境通常都是使用此配置

AOF重写机制

AOF文件记录的是Redis中所有的写操作,例如:

set key1 1 \n set key2 2 \n set key3 3 \n

随着命令不断写入AOF,文件会越来越大。而此时AOF文件中存在很多待优化及无效的数据就需要使用重写机制进行处理。例如:

set key1 1 setkey1 2 setkey1 3 就可以优化成setkey1 3	
set key2 2 set key2 3 del key2 就可以把所有关于key2的删除掉	
lpush key 1 lpush key 2 lpush key 2 就可以优化为 lpush key 1 2 3

AOF重写机制触发方式

  • ·手动触发:直接调用bgrewriteaof命令

  • 自动触发:根据auto-aof-rewrite-min-size(运行AOF重写时文件最小体积,默认64MB)和auto-aof-rewrite-percentage(当前AOF文件空间和上一次重写后AOF文件空间的比值)参数确定自动触发时机

Redis数据恢复

Redis启动时是按照如下流程来恢复数据的

640?wx_fmt=png

640?wx_fmt=jpeg

万水千山总是情,点个 “在看” 行不行!!!

640?wx_fmt=png 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值