栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis的持久化之RDB

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis的持久化之RDB

1.RDB是什么?

        在指定得时间间隔内生成内存中整个数据集得持久化快照。快照文件默认被存储在当前文件夹中,名称为dump.rdb,可以通过dir和dbfilename参数来修改默认值。

也就是行话来讲得Snapshot快照,它恢复时将快照文件直接读到内存里。

持久化过程中,Redis会单独创建一个(fork)一个子进程来进行持久化,子进程会先将数据写入到一个临时文件中,待持久化过程结束了,再用这个临时文件替换上次持久化好的RDB文件。整个过程中,主进程不进行任何的IO操作的,这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。

注:fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量,环境变量,程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程。

我对RDB很熟悉,那你说一下你是怎么备份的?

RDB是整个内存的压缩过的Snapshot,RDB的数据结构,可以配置复合的快照触发文件
你就可以说,默认  

1分钟内改了1万次,

或5分钟内改了10次,

或15分钟内改了1次

换句话说,Redis后台有一个监控调度一样,帮你默默的做工作

关于禁用

总结  如何出发RDB快照

1.配置文件中默认的快照配置

在redis中设置值的时候会产生dump.rdb文件

最好是主机和备份机器是两台,防止硬件损坏

 2.命令save或者是bgsave

这两个命令都可以迅速形成dump文件进行备份 

注意:

save只管保存,其他的不管,全部阻塞。就是我在save的时候,数据就灌不进来了,redis就相当于哥们先等一下,我先把备份这件事情干了,你再弄新的数据,所有说一般备份都在晚上完成;

bgsave:Redis后台异步进行快照操作,快照同时还可以响应客户端请求,可以lastsave命令获取最后一次成功执行快照的时间。

3.执行flushall命令,也会产生dump.rdb文件,但里边是空的,没有意义。

如何恢复

 将备份文件(dump.rdb)移动到redis安装目录并启动服务即可。就能自动的从硬盘文件里边读回内存

优势:

适合大规模的数据恢复,对数据完整性和一致性要求不高;也就是说你一步小心把redis给kill了,那最近的数据给搞丢了

劣势:

在一定的间隔时间做一次备份,所以如果redis意外down的话,就会丢失最后一次快照后的所有修改

fork的时候,内存的数据被克隆了一份,大致2倍膨胀性需要考虑内存的空间

小总结:

  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/868012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号