Redis持久化

本文介绍了Redis持久化,因内存数据易失,需持久化存储。详细阐述了两种持久化方式:RDB按时间点备份,有阻塞和非阻塞方式,优点是恢复快、适合灾难恢复,缺点是可能丢失数据;AOF追加写操作命令,丢失数据少,有重写机制,优点是性能好、可恢复误操作,缺点是文件体积大、恢复慢。

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

Redis持久化

持久化 是将数据从掉电易失的内存存放到能够永久存储的设备上

Redis为什么需要持久化

因为数据都是缓存在内存中的,当你重启系统或者关闭系统后,缓存在内存中的数据都会消失殆尽,再也找不回来了。所以,为了让数据能够长期保存,就要将 Redis 放在缓存中的数据做持久化存储

Redis持久化方式

​ RDB(Redis DB) hdfs: fsimage

​ AOF(AppendOnlyFile) hdfs : edit logs 关闭的

RDB

在默认情况下,Redis 将数据库快照保存在名字为 dump.rdb的二进制文件中

某个时间点内存的快照备份,按照时点进行备份,8点,10点,在备份期间duang机,期间的数据不能备份

不定时的备份速度快,对内存不会造成太大压力。

RDB的2种持久化方式: a,b

​ a. 阻塞方式 客户端中执行save命令

​ 停服务器 对用户界面不友好,但两个阶段恢复的数据完全相同

​ b. 非阻塞方式:(复杂度高?) bgsave 分散存储

​ 用户体验度更高,用户添加新需求的时候,后台还可以继续运行 COW写时拷贝技术 父进程指向的是指针,子进程fork()读写进程,父子进程相互进行互不影响。

策略

​ 自动:按照配置文件中的条件满足就执行BGSAVE

​ save 60 1000,Redis要满足在60秒内至少有1000个键被改动,会自动保存一次

​ 手动:客户端发起SAVE、BGSAVE命令
在这里插入图片描述
实时存储,多套文件,

在这里插入图片描述

优点

完全备份,不同时间的数据集备份可以做到多版本恢复(手动)

紧凑的单一文件,方便网络传输,适合灾难恢复

恢复大数据集速度较AOF快

缺点

会丢失最近写入、修改的而未能持久化的数据(阻塞)

fork过程(开启子进程)非常耗时,会造成毫秒级不能响应客户端请求(非阻塞)

AOF

采用追加方式保存 记录所有的写操作命令,在服务启动的时候使用这些命令就可以还原数据库.

相对于RDB丢失数据少很多

写入磁盘策略:always everysec no

重写机制 体积 百分比

auto-aof-rewrite-min-size ,触发AOF重写所需的最小体积(64M)

auto-aof-rewrite-percentage ,指定触发重写所需的AOF文件体积百分比

百分比为了避免陷入无限的死循环

优点

写入机制,默认fysnc每秒执行,性能很好不阻塞服务,最多丢失一秒的数据

重写机制,优化AOF文件

如果误操作了(FLUSHALL等),只要AOF未被重写,停止服务移除AOF文件尾部FLUSHALL命令,重启Redis,可以将数据集恢复到 FLUSHALL 执行之前的状态

缺点

相同数据集,AOF文件体积较RDB大了很多

恢复数据库速度比RDB慢(文本,命令重演)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值