【Redis】Redis中SAVE和BGSAVE的区别

本文介绍了Redis的save和bgsave命令,save会阻塞主进程导致服务暂停,适用于小规模数据;bgsave在后台进行,不影响服务响应,适合大规模数据备份。重点讨论了fork操作对bgsave的影响。

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

概述

Redis的这两个命令都是用于创建当前数据库的备份。

因为Redis持久化选择RDB快照模式,所以Redis并不是实时的进行数据持久化,而是有一定的时间间隔。这个时候如果我们想要手动进行一次持久化,可以使用save或者bgsave命令。

1. SAVE

基本命令:

redis 127.0.0.1:6379> SAVE 
OK

该命令将在 redis 安装目录中创建dump.rdb文件。

影响:

SAVE 直接调用 rdbSave函数 ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。

如果数据量小,用此命令可能感觉不出有什么区别,但是当数据量很大的时候,就需要谨慎使用这个命令。

2. BGSAVE

基本命令:

127.0.0.1:6379> BGSAVE

Background saving started

客户端可以通过 LASTSAVE 命令查看相关信息,判断 BGSAVE 命令是否执行成功。

影响:

BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。

BGSAVE方式比较适合线上的维护操作。

2.1 fork操作有影响吗

fork子线程一般情况下是很快的,但是如果花费时间太久,bgsave命令仍有阻塞其他客户请求的情况发生。

有关更详细的信息,可参考《Redis的“快照”为什么不会阻塞其他请求?》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值