RDB,即Redis DataBase的简称。RDB是Redis默认的持久化机制
RDB持久化文件,速度比较快,而且存储的是一个二进制的文件,传输起来很方便
在指定的时间间隔内,将内存中的数据集的快照写入磁盘。默认保存在/usr/local/bin目录下的dump.rdb文件中
RDB持久化的时机:
save 900 1 :在900秒内,有1个key改变了,就执行RDB持久化。
save 300 10 :在300秒内,有10 个key改变了,就执行RDB持久化。
save 60 10000 :在60秒内,有10000个key改变了,就执行RDB持久化。
默认的自动备份不利于测试,所以我们需要修改一下: vim /opt/redis-5.0.4/redis.conf
将219行的默认300秒改为60秒
如果只想用Redis的缓存功能,不需要持久化自动备份,那么就可以注释掉所有的 save 行来停用保存功能。然后添加 save "" 来实现停止持久化备份的功能。
改完配置文件后重新启动redis: redis-server /opt/redis-5.0.4/redis.conf
运行redis: /usr/local/bin/redis-cli
随便设置10个键然后退出 : shutdown 回车后跟 eixt 退出
退出后查询/usr/local/bin目录下多了一个 dump.rdb文件: ls /usr/local/bin
此时我们将这个文件复制一份: cp dump.rdb dump_copy.rdb
然后将原来的缓存文件删除: rm -rf dump.rdb
重新登录redis查看数据:
可以看到我们刚刚存储的数据都不存在了,继续退出
将刚刚拷贝的文件改名字: mv dump_copy.rdb dump.rdb
重新启动Redis服务,登录Redis就可以看到我们的数据都恢复了
手动备份 save
RDB的优势和劣势:
优势:适合大规模数据恢复,对数据完整性和一致性要求不高。
劣势:内存中数据在一定间隔后备份一次,当出现意外宕机情况,就会失去最后一次快照的所有修改