美文网首页
redis持久化RDB配置

redis持久化RDB配置

作者: 吐痰高手 | 来源:发表于2017-11-08 22:51 被阅读66次

    RDB = Redis DataBase

    RDB是什么:

    在指定的时间间隔内将内存中的数据集快照写入磁盘

    也就是行话讲得Snapshot快照,它回复时是将快照文件直接读到内存中

    Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,在用这个临时文件替换上次持久化好的文件.

    整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能

    如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效.

    RDB的缺点是最好一次持久化后的数据可能丢失

    Fork

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

    RDB保存的是dump.rdb文件

    配置保存策略

    save [seconds] [changes]
    
    # 如果要禁用功能则使用: 
    save ""
    

    上面的配置什么意思呢?

    例如:

    save 900 1
    # 如果在900秒内有1次改动(增删改),则保存到硬盘中
    
    save 300 10 
    # 如果在300秒内有10次改动(增删改),则保存到硬盘中
    
    save 60 10000
    # 如果在60秒内有10000次改动(增删改),则保存到硬盘中
    
    多个策略可以并用,也就是说可以配置多个save...
    

    手动执行保存到硬盘的操作

    • save 阻塞操作,其他操作不能执行
    # 直接执行save命令
    # 这是一个阻塞操作
    save
    # 就一个save,直接将内存中的数据保存到硬盘中
    # 如果保存的一个数据非常重要,可以直接这么使用
    
    • bgsave 后台异步执行保存快照操作,同时还可以相应客户端请求
    bgsave
    
    • lastsave查看最后一次成功执行快照的时间
    lastsave
    # 返回是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
    # 就是标准的Unix时间戳
    

    • 指定存储至本地数据库时是否压缩数据,默认为yes, Redus采用LZF压缩,如果为了节省cpu时间,可以关闭该选项,但会导致数据库文件变得巨大
    rdbcompression yes
    # 还是压缩比较好
    
    • 指定本地数据库文件名,默认值为dump.rdb
      根据save的策略,redis的数据包保存在这个文件中
      ,在关闭数据库的时候也会强制保存一次
    dbfilename dump.rdb
    
    • 指定本地数据库存放目录
    dir  ./
    # 上面这个./是个变动的值,程序在哪个路径敲命令启动的,那么就是在哪个路径
    
    • 当写入数据到硬盘出错,则停止保存到硬盘
    stop-writes-on-bgsave-error yes
    
    • 存储快照后,进行数据校验
    rdchecksum yes
    # 在存储快照后,可以让redis使用CRC64算法来进行数据校验
    # 但是会增加大约10%的性能消耗
    # 我觉得10%不算什么
    

    如何恢复硬盘中的数据到内存中?

    • 直接将dump.rdb文件移动到redis安装目录,并启动redis即可
    • //需要测试下,是不是移动到 dir的目录也行

    RDB优势

    • 适合大规模的数据恢复

    RDB劣势

    • 数据完整性和一致性不高
    • 在备份的时候redis意外爆掉,可能会丢失最后一次快照后的修改
    • fork的时候,内存中数据被克隆了一份,需要考虑内存的使用
    • fork过程比较耗时,可能响应客户端的时间不能达到毫秒级

    不怎么重要的内容

    • 动态停止RDB保存规则
    redis-cli config set save ""
    

    相关文章

      网友评论

          本文标题:redis持久化RDB配置

          本文链接:https://www.haomeiwen.com/subject/xdeumxtx.html