RDB(redis data )
-
什么是RDB?
因为redis是内存数据库,断电时内存数据会丢失,所以RDB就是redis进行持久化的一个机制,将内存中的数据保存在本地磁盘文件,即dump.rdb。 -
为什么要使用RBD?
就像上面所说的进行持久化,重新启动redis时会加载dump.rdb中的数据到内存。 -
怎么用RDB?
redis默认启用RDB,redis的配置文件(windows下面是redis.windows.conf)中的SNAPSHOTTING区域会对RBD进行一些配置,比如
格式:save <seconds> <changes>
# save \"\"//当你不想启用自动更新的时候,可以放开这里
save 900 1
save 300 10
save 60 10000
意思就是900秒内redis进行了一次更新操作,或者300秒内进行了10次更新操作,60秒内进行了10000次更新操作,那么将会将内存中的数据fork到磁盘中,也就是dump.rdb。
(tips1:解释下这里的fork过程,fork是将redis的主进程完全复制一份,状态,数据什么的都相同,然后子进程将数据复制到dump.rdb中,但是这里就会造成一个问题,假如数据量过大,比如一个班里做了50人坐满了,再来50人,那么redis可能就不行了,在复制期间,主进程是不能进行任何操作的。)
备份过程:
- Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。
- 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。
- fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程
(tips2:文件备份是解决了断电等软件异常,但是假如安装redis的那台服务器坏掉了,数据一样会丢失,因此经常会对dump.rdb文件进行备份,且备份到其他机器上,那么一台机器坏掉启用另一台就好了。)
stop-writes-on-bgsave-error yes
这里提一下bgsave是异步fork数据到磁盘,主进程可以继续执行,和上面的save不同。这个配置见词知意,就是写数据出错了立马停止。
rdbcompression yes
这个是存储数据时压缩一下,会造成CPU的占用。
rdbchecksum yes
对rdb数据进行校验,大概耗费10%CPU。
(tips:10%!?一听是很多,但是数据复制一般是在深夜无人的时候,这时候CPU是空闲的,所以一般够用,这里不用配置成no,优化这点性能不如再买个redis,因为程序员的工作是干不完的,这点不用跟老板客气…)
dbfilename dump.rdb
很明显,就是RDB的文件名。
dir ./
RDB的文件目录,这里是相对目录,和redis.conf在一个目录。
- 优点
- 适合大规模的数据恢复
2.全量备份、恢复,只备份最后一次.rdb文件
- 适合大规模的数据恢复
- 缺点
1.在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改
2.fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需要考虑
为了弥补RDB的缺点,诞生了AOF。
AOF
- 什么是AOF?
- 为什么用AOF?
- 怎么用AOF?
- 优点
- 缺点
继续阅读与本文标签相同的文章
AMD深度学习库MIOpen更新,支持CNN加速
nginx 获取自定义head 头部信息
-
基于 APIGateway 打造生产级别的 Knative 服务
2026-05-18栏目: 教程
-
棱镜丨圆通回应“承诺达”解散:由直营模式改回加盟商授权经营
2026-05-18栏目: 教程
-
自从有了它,我在微信上吵架就没输过!
2026-05-18栏目: 教程
-
OTT终端不断地在全球范围扩展,未来万物互联不再是梦想
2026-05-18栏目: 教程
-
2019云栖大会 | 开源数据库界大神集体现身,邀你共同感受“开源魅力”
2026-05-18栏目: 教程
