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

      

      

      

    人生就像蒲公英,看似自由,其实身不由己。
  • 相关阅读:
    Vue双向绑定的实现原理系列(一):Object.defineproperty
    TCP协议中的三次握手和四次挥手
    一切事物皆对象_进阶篇
    一切事物皆对象_基础篇
    自成一派的正则表达式
    超好用的模块
    软件目录开发规范
    迭代器与生成器
    不怎么好吃的语法糖
    你可造什么是函数
  • 原文地址:https://www.cnblogs.com/walker993/p/14444325.html
Copyright © 2011-2022 走看看