关于redis中的持久化机制

本文深入探讨了Redis的两种持久化机制:RDB快照和AOF日志。详细介绍了手动与自动快照的触发条件及过程,以及AOF日志的同步频率选择和AOF重写机制,帮助读者理解如何在不同场景下选择合适的持久化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

脑图:
在这里插入图片描述

1.持久化:将数据文件永久的保存到磁盘的过程 称之为数据持久化

内存中的数据:断电后消失

2.redis 中默认支持持久化机制;

a.快照持久化:生成某个时刻的redis server 中的数据 快照 xxx.rdb格式 ,redis宕机之后,可以读取xxx.rdb格式的文件恢复数据。

创建快照的几种方式:

1.手动快照: 客户端执行bgsave 生成xxx.rdb 文件 (调用fork 函数,生成父子进程 不会阻塞redis服务)

​ 客户端执行 save 生成xxx.rdb文件 (阻塞redis服务进程)

​ 客户端调用shoutdown命令 :自动执行save指令 并且

2.自动快照:根据redis.config中配置save 选项自动触发bgsave指令(注意 save选项可以配置多个,有一个满足都可以触发快照)
save 900 1 (15分钟之内,有一个key发生变化 触发一次快照)

​ save 300 10(5分钟之内 ,有10个 key 发生变化 触发一次快照)

​ save 60 10000 (一分钟之内,有1000个key发生变化 ,触发一次照)

注意:没有触发save操作之后的文件可能丢失部分不定量数据。

b.AOF 持久化机制

1.定义:Append Only File(只追加日志文件) redis服务会接收所有客户端的写操作以命令方式记录到xxx.aof的日志文件中,只要执行一次AOF文件就可恢复redis数据。

2.开启aof持久化:

修改redis.conf 中的文件,appendonly yes

3.指定aof文件名称: 修改 redis.conf中的文件,默认是 appendfilename “appendonly.aof”

注意:日志文件存放的位置和快照文件指定的目录一致。

4.日志文件的同步频率:

​ always (每一个客户端写操作立即同步到aof文件中)

​ 优点:保证redis不丢失任何数据 缺点:大量数据消耗硬盘性能。

​ everysec (每秒将写操作同步进aof)中

​ 优点:适合一秒内有多次写操作)最多丢失1秒内的数据

​ no (完全由操作系统决定何时同步)(不推荐)

在这里插入图片描述
5.AOF文件的限制:持久文件越来越大,导致用尽物理磁盘,redis宕机

解决方案:AOF重写:将原来的aof日志文件进行压缩

重写机制:不是对原始文件进行压缩,而是生成新的日志文件 替换原始文件

重写方式 :1.bgrewriteof :将内存中的数据以命令的方式保存到临时文件中,同时会fork出一条新进程来将文件重写。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值