Redis__RDB快照持久化&&配置&&原理

Redis的持久化分为两种:
快照持久化RDB
AOF
所谓的持久化就是保持我们的数据不丢失
这里讲RDB

快照持久化RDB
RDB的好处是快速。
优点
RDB文件是一个很简洁的单文件,它保存了某个时间点的Redis数据,很适合用于做备份。你可以设定一个时间点对RDB文件进行归档,这样就能在需要的时候很轻易的把数据恢复到不同的版本。
RDB很适合用于灾备。单文件很方便就能传输到远程的服务器上。
RDB的性能很好,需要进行持久化时,主进程会fork一个子进程出来,然后把持久化的工作交给子进程,自己不会有相关的I/O操作。
比起AOF,在数据量比较大的情况下,RDB的启动速度更快。

缺点
RDB容易造成数据的丢失。假设每5分钟保存一次快照,如果Redis因为某些原因不能正常工作,那么从上次产生快照到Redis出现问题这段时间的数据就会丢失了。
RDB使用fork()产生子进程进行数据的持久化,如果数据比较大的话可能就会花费点时间,造成Redis停止服务几毫秒。如果数据量很大且CPU性能不是很好的时候,停止服务的时间甚至会到1秒。

禁用快照
1.在redis.conf配置文件中注释掉所有的save配置
2.在最后一条save配置追加吃命令

save ""

配置
RDB持久化方式,通过拍摄快照的方式来实现持久化,将某个时间的内存数据存储在一个rdb文件中。在redis服务重新启动的时候会加载rdb文件中的数据。

Redis默认的持久化方式就是RDB,我们可以在redis.conf配置文件中进行配置
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

配置文件配置快照的主要设置部分

…
save 900 1   #900秒内至少有1个key被更改就执行快照
save 300 10  #300内描述至少有10个key被更改就执行快照
save 60 10000  #60秒内至少有10000个key被更改就执行快照
…
rdbcompression yes #是否对快照文件进行压缩
…
rdbchecksum yes #是否进行数据校验
…

1.在主从节点中,RDB作为我们的备份数据,只在salve(从节点)上启动,同步时间可以设置的长一点,只留(save 900 1)这条规则就可以了。

2.不开启AOF的情况下,可以节省IO的性能影响,这是主从建通过RDB持久化同步,但如果主从都挂掉,影响较大~
Rdb文件的位置

在这里插入图片描述
进入安装目录把rdb文件删除,新增几笔数据后,重启redis,它会重新生成一个rdb文件,这个rdb文件就是我们的快照备份文件,查看redis存储的数据,发现除了新增的数据,原来的数据不在,这是因为redis启动的时候加载了备份文件里的数据,而原来存储的数据在被删除的rdb文件,现在这个rdb文件只保存了新增的数据。

RDB的原理

save命令
在redis运行期间,我们可以通过发送save命令来进行拍摄快照来保存数据,因为save命令是是阻塞命令,所以在服务器收到save命令后,执行命令期间是不会进行其他的请求操作的,意思是不会开启其他线程,进行多线程操作,而执行save命令期间其他请求命令会被挂起,等save执行完后才可以进行。

bgsave命令
bgsave命令也是立即拍摄快照,有别于save命令,bgsave并不是一条阻塞命令,而是fork一个子线程,然后这个子线程负责备份操作。而父进程继续处理客户端的请求,这样就不会造成阻塞了。

shutdown
Shutdown用于关闭redis服务,执行Shutdown时,服务器会自动发送一条save命令来完成快照操作。并在完成备份操作后关闭服务器。

sync
当在主从环境中,从节点要同步主节点的数据的时候会发送一条sync命令来开发一次复制。此时主节点会发送一条bgsave命令来fork一个新的线程来完成快照并在bgsave命令操作结束后将快照文件发送给从节点来完成主从节点的数据的同步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

偷偷学习被我发现

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

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

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

打赏作者

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

抵扣说明:

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

余额充值