zoukankan      html  css  js  c++  java
  • redis基础篇~rdb详解

     
    一简介:
        rdb是redis持久化策略的选择之一,让我们来一探究竟
    二 核心设计思路
        核心思路:fork一个子进程,只有在父进程发生写操作修改内存数据时,才会真正去分配内存空间,并复制内存数据,而且也只是复制被修改的内存页中的数据,并不是全部内存数据,所以内存数据快照说法并不标准,应该来说是单位时间内改变的内存数据快照
    三 CopyOnWrite(简称cow) 好处:
       1、减少分配和复制资源时带来的瞬时延迟;
       2、减少不必要的资源分配,假如整体资源是10G,redis现有使用率是5G,那么fork一个子进程拷贝rdb到磁盘并不是5G,而是改变数据的大小
    四 CopyOnWrite的缺点:
        如果父子进程都需要进行大量的写操作,会产生大量的分页错误(页异常中断page-fault)
    五 RDB参数
      0 save 900 1          15分钟->1 key
        save 300 10         5分钟->10 key
        save 60 10000    1分钟->1W key
     1 rdbcompression  默认打开 
     2 rdbchecksum 默认打开
     3 dbfilename dir 路径 名称 元数据 默认当前目录下
    六 需要注意点
      1 rdb本身是二进制文件,不可手工进行读取
      2 rdb本身可以手动触发 save(阻塞型) bgsave(非阻塞型)
      3 rdb本身可以进行冷拷贝,在进行快照的过程中不会修改RDB文件,只有快照结束后才会将旧的文件替换成新的
      4 rdb的恢复效率是远远高于aof的
      5 rdb只有在单位时间内至少N个key改变才会生成快照
    七  缺点
       1 rdb没办法做到实时备份,会丢失掉最后一次快照之后的数据
       2 rdb 的动作(生成快照,备份文件压缩 checksum)都会消耗cpu资源,快照本身也会消耗内存资源
     
     

  • 相关阅读:
    如何利用UltraEdit语法着色来编辑shell脚本
    css 运动背景
    页面加载进度条
    jScrollPane滚动条
    页面加载进度条改进版
    js页面新消息提示
    一道题
    jquery插件 展示信息
    冒泡排序和快速排序
    字体背景
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/14715422.html
Copyright © 2011-2022 走看看