zoukankan      html  css  js  c++  java
  • Redis的持久化——RDB

    
    

    前面说到redis的三大特性:缓存、分布式内存数据库、持久化,所以今天将为大家介绍redis的两种数据持久化技术RDB和AOF, 先介绍RDB吧。

    一、RDB是什么?

      1、RDB全称redis database,在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时 直接将快照文件直接读到内存里;

      2、Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,主进程是不进行任何IO操作的,它

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

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

    二、Fork

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

    三、RDB持久化数据在dump.rmb文件中。

    四、配置位置

    
    

    1、save sec changed

         在一段时间(sec秒)内,数据修改的次数达到changed次触发快照,可以写多条。

         补充:save “”表示不设置触发条件  2、stop-writes-on-bgsave-error yes

         在异步快照持久化数据是停止往redis内存写入数据。

       3、rdbcompression yes

         对于储存到磁盘的快照,是否启用LZF算法进行压缩存储,yes则启用,但会消耗一定CPU。

       4、rdbchecksum yes

          在存储快照后,是否让redis使用CRC64算法来进行数据校验,但是会增加约10%的性能消耗。

       5、dbfilename dump.rdb

         设置快照存储的位置。

       6、dir ./

          路径。

    五、如何触发RDB快照

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

    
    

    2、命令save或者是bgsave

        - save:save时只管保存,其他不管,全部堵塞;

        - bgsave:redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。可以通过lastsave命令获取最后一次成

    功执行快照的时间。

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

    六、如何恢复数据

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

      2、config get dir获取目录。

    七、优势

      1、适合大规模的数据恢复;

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

    八、劣势

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

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

    九、如何停止

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

    十、小结

      1、rdb是一个非常紧凑的文件;

      2、rdb在保存rdb文件时父进程唯一需要做的就是fork出一个子进程,接下来的工作全部由子进程来做,父进程不需要再做

    其他IO操作,所以rdb持久化方式可以最大化redis的性能;

      3、与AOF相比,在恢复大的数据集的时候,rdb方式会更快些;

      4、由于可能丢失最后一次快照的修改数据,所以数据丢失风险大;

      5、rdb需要经常fork子进程来保存数据集到硬盘上,当数据集比较大的时候,fork的过程非常耗时,可能会导致redis在一些

    毫秒级不能响应客户端请求。

  • 相关阅读:
    商户编号前三位代码对应的收单机构大全
    使用邮件模板(freemarker.jar)发送邮件
    Struts2自定义拦截器
    如何在jsp页面显示存储在数据库的图片
    正则表达式 大于0的数字(包含小数)
    Linux的关机命令
    maven的下载和安装
    web.py的安装
    安装第三方插件BeautifulSoup
    myeclipse离线安装pydev插件
  • 原文地址:https://www.cnblogs.com/richiewlq/p/8569828.html
Copyright © 2011-2022 走看看