Redis之rdb快照持久化

本文详细介绍了Redis的RDB持久化机制,包括其如何通过快照方式将内存数据导出到硬盘实现数据持久化,并探讨了RDB持久化的配置选项及存在的问题。

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

Redis快照持久的意思就是将内存的数据导出到硬盘中,做到持久化。因为导出的是二进制文件,所以恢复速度快。
Reids服务一般有三个进程,一个就是redis-server,负责响应客户端的请求,一个是rdb进程了,负责数据的快照持久。还有一个是aof进程(下篇会讲到)。
rdb服务的一些参数配置在redis安装目录下的redis.conf中。
主要有以下配置:

save 900 1    #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。
save 300 10  #必须是300秒之后至少10个关键字发生变化。
save 60 10000 #必须是60秒之后至少10000个关键字发生变化。

从下往上看,持久化的限制条件越来越松,当然,如果你只想做缓存,不作持久化,你可以注释这几行。(如果要做测试,可以在redis安装目录bin目录下的redis-benchmark命令来做测试,如redis-benchmark -n 10000则是产生一万条redis命令)

stop-writes-on-bgsave-error yes    #后台存储错误停止写。

因为redis-server和rdb是两个进程,所以如果当redis在持久化时突然出错,这个时候你还在做写操作,那么肯定会导致真实数据和持久化的数据不一致,为了防止这种情况,当持久化出错的时候停止写操作,保证数据一致性。

rdbcompression yes    #使用LZF压缩rdb文件。
rdbchecksum yes    #存储和加载rdb文件时校验。
dbfilename dump.rdb    #设置rdb文件名。
dir ./    #设置工作目录,rdb文件会写入该目录。

这个就是redis快照持久化的一些基本配置。接下去我们说一下redis rdb持久化的一些缺点。
这里写图片描述
上面这个图中竖线表示的就是redis满足rdb配置,正在做持久化。举个例子,每间隔一分钟,redis满足条件,做持久化,将数据导出到磁盘中。比如3分钟的时候导出,4分钟的时候导出,而恰恰在3~4分钟之间服务器断电了,那么3~4分钟之间的数据岂不是没有做持久化,都没有了。所以说这个就是redis rdb快照持久化的一个缺点。不过在redis2.4版本后新增了aof日志持久化来解决这个问题,下一篇我们就来说说aof。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值