zoukankan      html  css  js  c++  java
  • Redis持久化AOF和RDB对比

    RDB持久化

    AOF持久化

    全量备份,一次保存整个数据库

    增量备份,一次保存一个修改数据库的命令

    保存的间隔较长

    保存的间隔默认一秒

    数据还原速度快

    数据还原速度一般

    save会阻塞,但bgsave或者自动不会阻塞

    无论是平时还是AOF重写,都不会阻塞

    更适合数据备份,默认开启

    更适合用来保存数据,和一般SQL持久化方式一样,默认关闭

    启动优先级 : 低

    启动优先级 : 高

    体积 : 小

    体积 : 大

    恢复速度 : 快

    恢复速度 : 慢

    数据安全性 : 丢数据

    数据安全性 : 根据策略决定

    轻重 : 重

    轻重: 轻

    1.在dump rdb过程中,aof如果停止同步,会不会丢失?  

    不会,所有的操作缓存在内存队列里,dump完后后,统一操作

    2.aof重写是什么?

    aof重写就是把内存中的数据逆化成命令,写入到aof文件,以解决aof日志过大的问题

    3.如果rdb和aof文件都存在,优先使用谁恢复数据?

    在这种情况下,当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件完整

    4.rdb和aof是否可以同时用?

    可以,推荐同时使用

    5.恢复时,rdb和aof哪个更快?

    rdb快,因为rdb是数据的内存映射,直接载入到内存,而aof是命令,需要逐条执行

    6.如何在不用【config set】命令的情况下,将Redis持久化由RDB切换到AOF

    利用主从,从机配置AOF重启后,将生成的AOF文件复制至主机Redis数据目录,主机配置AOF后再重启。

    注:在 Redis 2.2 或以上版本,通过【config set】可以在不重启的情况下,从 RDB 切换到 AOF。

    1)为最新的 dump.rdb 文件创建一个备份。

    2)将备份放到一个安全的地方。

    3)执行以下两条命令: redis-cli> CONFIG SET appendonly yes redis-cli> CONFIG SET save ""

    4)确保命令执行之后,数据库的键的数量没有改变。

    5)确保写命令会被正确地追加到 AOF 文件的末尾。

    步骤 3 执行的第一条命令开启了AOF功能:<font style="color:red">Redis会阻塞直到初始AOF文件创建完成为止</font>,之后Redis会继续处理命令请求, 并开始将写入命令追加到 AOF 文件末尾。

    步骤 3 执行的第二条命令用于关闭RDB功能。这一步是可选的,如果你愿意的话,也可以同时使用RDB和AOF这两种持久化功能。

    不过别忘了在redis.conf中打开AOF功能!否则的话,服务器重启之后,之前通过【CONFIG SET】设置的配置就会被遗忘,程序会按原来的配置来启动服务器。

     

  • 相关阅读:
    CF821E 【Okabe and El Psy Kongroo】
    BZOJ1231: [Usaco2008 Nov]mixup2 混乱的奶牛
    P1896 [SCOI2005]互不侵犯
    QBXT Day 2 记录
    CF467C George and Job
    【luogu P3373 线段树2】 模板
    【luogu P1306 斐波那契公约数】 题解
    【luogu T24743 [愚人节题目5]永世隔绝的理想乡】 题解
    【luogu P1903 [国家集训队]数颜色】 题解
    莫队算法~讲解
  • 原文地址:https://www.cnblogs.com/yhq-qhh/p/10140586.html
Copyright © 2011-2022 走看看