289-Redis(Redis持久化-RDB方式)

1、持久化简介

在这里插入图片描述
在这里插入图片描述
什么是持久化?

  • 利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。

为什么要进行持久化?

  • 防止数据的意外丢失,确保数据安全性

保存的方式:

  • RDB(快照): 定时将数据持久化到硬盘中
  • AOP(日志): 保存操作的过程

在这里插入图片描述

2、RDB

在这里插入图片描述

2.1、RDB启动方式

2.1.1、RDB启动方式 —— save指令

命令:

save	#每执行一次就会保存一次数据

作用: 手动执行一次保存操作

2.1.2、RDB启动方式 ——dump.rdb文件

在这里插入图片描述
在这里插入图片描述
save之后,会在data中生成dump.rdb文件
在这里插入图片描述
在这里插入图片描述
这个rdb文件就是持久化文件!
在这里插入图片描述
将这个文件删掉,客户端再save一下!
在这里插入图片描述
在这里插入图片描述
又生成了dump文件!
在这里插入图片描述
加点内容:
在这里插入图片描述
再save一下,比较一下,此时两个文件大小已经发生变化了
在这里插入图片描述
在这里插入图片描述

2.1.3、RDB启动方式 —— save指令相关配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将服务关闭重启:
在这里插入图片描述

在这里插入图片描述
插入一个键值对,然后save!
在这里插入图片描述
在这里插入图片描述
查看内容:
在这里插入图片描述
再添加一个键值对,然后save:
在这里插入图片描述
OK的!
在这里插入图片描述
数据恢复演示:

先关掉服务:
在这里插入图片描述
重新启动:
在这里插入图片描述
打开客户端查看数据:
在这里插入图片描述
可以看到此时的数据还在!是在redis启动的时候,将数据加载了!

2.1.4、RDB启动方式 —— save指令工作原理
  • redis是单线程的!
  • 注意: save指令的执行会阻塞当前Redis服务器,直到当前RDB过程完成为止,有可能会造成长时间阻塞,线上环境不建议使用。
    在这里插入图片描述
    #### 数据量过大,单线程执行方式造成效率过低如何处理?
    后台执行!

    在这里插入图片描述
2.1.5、RDB启动方式 —— bgsave指令

命令:

bgsave	#后台保存

作用: 手动启动后台保存操作,但不是立即执行
在这里插入图片描述
可以看到提示,表示在后台执行的!

可以看到,和上次相比,文件的大小已经变了:
在这里插入图片描述
在这里插入图片描述
工作原理:
在这里插入图片描述
是不是上面这个过程,我们可以查看日志文件:
在这里插入图片描述
在这里插入图片描述
确实是在后台启动了一个进程进行操作的!


注意:

  • bgsave命令是针对save阻塞问题做的优化。Redis内部所有涉及到RDB操作都采用bgsave的方式,save命令可以放弃使用。
  • save是马上执行,加入到任务执行的工作队列中!
  • bgsave是后台创建一个子进程来完成的!
2.1.6、RDB启动方式 —— bgsave指令相关配置

在这里插入图片描述

反复执行保存指令,忘记了怎么办?不知道数据产生了多少变化,何时保存?

在这里插入图片描述

2.1.7、RDB启动方式 ——save配置

配置:

save second changes		#后台用的是bgsave指令

作用: 满足限定时间范围内key的变化数量达到指定数量即进行持久化。

参数:

  • second:监控时间范围
  • changes:监控key的变化量

位置: 在conf文件中进行配置。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
再次启动服务端:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到只改变一个key,没有rdb文件:
在这里插入图片描述
在里面再插入一个key,就会发现:
在这里插入图片描述
在这里插入图片描述
再次插入键值对,只有第2次插入时,rdb文件才会写入,文件大小有变化:
在这里插入图片描述
执行get指令:
在这里插入图片描述
rdb文件内容不会发生变化:(只有key发生变化,才会修改rdb文件的内容)
在这里插入图片描述

del也是,只有操作两次,才会有变化!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:

  • save配置要根据实际业务情况进行设置,频度过高或过低都会出现性能问题,结果可能是灾难性的
  • save配置中对于second与changes设置通常具有互补对应关系,尽量不要设置成包含性关系
  • save配置启动后执行的是bgsave操作
2.1.8、RDB三种启动方式对比

在这里插入图片描述
在这里插入图片描述

2.1.9、RDB的优点和缺点

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liufeng2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值