9. Redis持久化之RDB

9.1 简介

Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!

9.2 RDB(Redis DataBase)

在指定的时间间隔内将内存中的数据集快照写入磁盘,恢复时将快照文件直接读到内存里。

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

redis.conf中的快照配置

rdb保存的文件是dump.rdb,都是在配置文件中配置的

有时候在生产环境我们会对这个文件进行备份

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

9.2.1 触发机制

  1. save的规则满足的情况下,会自动触发rdb规则
  2. 执行 flush all命令,也会触发rdb规则
  3. 退出redis,也会产生rdb文件
  4. 备份会自动产生一个rdb文件

9.2.2 rdb文件位置

  1. 如果是使用docker安装的redis,那么需要在第一次运行时指定data的存放目录,可以参考我另一篇博文:Redis.conf配置,里面有详细介绍,这里就使用之前配置好的路径/root/usr/local/redis/data

  2. 如果是用安装文件安装的,dump.rdb就生成在根目录下,可以使用命令查看

    127.0.0.1:6379> config get dir
    1) "dir"
    # 如果在这个目录下存在 dump.rdb 文件,启动就会自动恢复其中的数据
    2) "/usr/local/bin"  
    

9.2.3 总结

优点:

  1. 适合大规模的数据恢复
  2. 对数据的完整性要求不高

缺点:

  1. 需要一定的时间间隔进行操作,如果Redis意外宕机了,这个最后一次修改数据就没有了
  2. fork进程的时候,会占用一定的内存空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值