redis rdb bgsave 内存不足_天天用Redis,持久性优化方案你知道多少?

Redis的持久化包括RDB和AOF两种方式,RDB通过快照保存数据,适合全量备份,但可能丢失部分数据;AOF记录每次写操作,确保数据实时性,但体积较大。AOF文件通过重写机制压缩,减少冗余。在数据恢复时,Redis会根据AOF或RDB文件恢复。合理配置持久化策略可平衡性能与数据安全性。

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

415cb5d27716783c537fe72f13e7f5cc.png
  • Redis目前已经成为主流的内存数据库了,但是大部分人仅仅是停留在会用的阶段,你真的了解Redis内部的工作原理吗?
  • 今天这篇文章将为大家介绍Redis持久化的两种方案,文章将会从以下五个方面介绍:
  1. 什么是RDB,RDB如何实现持久化?
  2. 什么是AOF,AOF如何实现持久化?
  3. AOF和RDB的区别。
  4. 如何重启恢复数据?
  5. 持久化性能问题和解决方案

1561eeae7d02c5c8336887606418ac02.png

RDB

  • RDB持久化是把当前进程数据生成快照保存到硬盘的过程, 触发RDB持久化过程分为手动触发和自动触发。
  • RDB完成后会自动生成一个文件,保存在dir配置的指定目录下,文件名是dbfileName指定。
  • Redis默认会采用LZF算法对生成的RDB文件做压缩处理,压缩后的文件远远小于内存大小,默认开启。

手动触发

  • 手动触发的命令有savebgsave
  • save:该命令会阻塞Redis服务器,直到RDB的过程完成,已经被废弃,因此线上不建议使用。
  • bgsave:每次进行RDB过程都会fork一个子进程,由子进程完成RDB的操作,因此阻塞只会发生在fork阶段,一般时间很短。

自动触发

  • 除了手动触发RDB,Redis服务器内部还有如下几个场景能够自动触发RDB:
  1. 根据我们的 save m n 配置规则自动触发。
  2. 如果从节点执行全量复制操作, 主节点自动执行bgsave生成RDB文件并发送给从节点。
  3. 执行debug reload命令重新加载Redis时, 也会自动触发save操作。
  4. 默认情况下执行shutdown命令时, 如果没有开启AOF持久化功能则自动执行bgsave

RDB执行流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值