zoukankan      html  css  js  c++  java
  • 第十章 RDB持久化

    将Redis中的非空数据库和其中保存的键值对称为数据库状态。RDB持久化即将内存中保存的数据库状态写入到RDB文件中,保存在磁盘上。

    10.1 RDB文件的创建与载入

    1. RDB文件的创建
      1. SAVE命令:阻塞服务器进程,期间不再处理请求,直到RDB文件创建完毕
      2. BGSAVE命令:派生一个子进程(fork)负责RDB文件的创建,服务器继续处理请求
    2. RDB文件的载入

        在服务器启动时自动载入,因为AOF文件更新频率更高,所以优先载入AOF文件,只有在AOF持久化功能处于关闭的状态,才会使用RDB文件还原数据库状态,在RDB文件载入期间,会一直处于阻塞状态知直到工作完成。

      在服务器执行BGSAVE命令期间,

    • 遇到SAVE命令,防止父子进程同时调用rdbSave调用,产生竞争条件,所以会直接拒绝;同样的,也会拒绝BGSAVE命令。
    • 遇到BGREWRITERAOF命令(重写AOF),出于性能的考虑,两者不能同时执行,会被延迟到EGSAVE执行完毕才开始执行。

    10.2 自动间隔性保存

      通过配置服务器的save选项设置自动保存,譬如

      save 900 1 //在900秒内,对数据库进行了至少1次修改,即执行BGSAVE命令。

    后记:

    1.触发RDB快照的时机

    1. 符合自动保存设置
    2. 执行save或者bgsave命令
    3. 执行主从复制操作
    4. 执行flushall

      

      

      

    人生就像蒲公英,看似自由,其实身不由己。
  • 相关阅读:
    Git
    Qcon2016上海站PPT
    TeamCity
    在cmd界面,怎么样退出Node.js运行环境
    python 2.x与python3.x的区别
    d3.max()与d3.min()
    d3.svg.line() 曲线构造器
    d3.js 之SVG:矢量化图形绘制
    moment.js 时间格式化库
    directive
  • 原文地址:https://www.cnblogs.com/walker993/p/14444325.html
Copyright © 2011-2022 走看看