Redis持久化RDB简介及简单数据恢复案例

RDBRedis DataBase:

简介:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话将的Snapshot快照,它恢复时是将快照文件直接读到内存里;

是什么?

Fork

RDB保存的是dump.rdb文件


配置的位置:(SNAPSHOTTING

简单说一下上面图片中配置的含义:满足下列任意一条均会生成dump.rdb快照文件进行数据的备份

save 900 1      900秒内修改了1次库

save 300 10       300秒内修改了10次库

save 60 10000  60秒内修改了10000次库

 

如何触发RDB快照:

---配置文件中默认的快照配置;

---命令save或者是bgsavesave时不再往数据库灌输数据,bgsave时可以继续存储数据);

---执行flushall命令,也会产生dump.rdb文件,但里面时空的,无意义.

如何恢复?

---将备份文件(dump.rdb)移动到redis安装目录并启动服务即可;

---CONFIG GET dir获取目录


下面是一个简单的恢复数据的案列:

首先在redis.conf文件中的SNAPSHOTTING中把save300 10 修改成save 120 10,即120秒内修改库10次就会生成dump.rdb快照文件。


Linux/usr/local/bin目录下,当前目录结构如下:

可以看到当前目录不存在dump.rdb文件,然后启动redis,并进入redis命令: 

 

当前数据库里没有任何值:

然后在120秒内往库里插入10条以上的数据:

退出redis命令行,120秒后,查看当前目录,发现多了dump.rdb文件:

dump.rdb文件进行备份:

再次进入redis命令行,清空所有的数据,关闭redis服务,并退出:

将之前备份好的dump_new.rdb文件重新覆盖掉dump.rdb文件,重新启动redis服务,输入keys * 命令,发现数据已经恢复:

优势:

---适合大规模的数据恢复;

---对数据完整性和一致性要求不高。

劣势:

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

---Fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需求考虑

如何停止?

动态所有停止RDB保存规则的方法:redis-cli config set save ""

小结:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值