zoukankan      html  css  js  c++  java
  • Redis基础篇(五)AOF与RDB比较和选择策略(转载)

    原文地址

    https://www.cnblogs.com/liang24/p/14180991.html

    RDB和AOF对比

    关于RDB和AOF的优缺点,官网上面也给了比较详细的说明redis.io/topics/pers…

    RDB

    优点:

    • RDB快照是一个压缩过的非常紧凑的文件,保存着某个时间点的数据集,适合做数据的备份,灾难恢复;
    • 可以最大化Redis的的性能,在保存RDB文件,服务器进程只需要fork一个子进程来完成RDB文件的创建,父进程不需要做IO操作;
    • 与AOF相比,恢复大数据集的时候会更快;

    缺点:

    • RDB的数据安全性是不如AOF的,保存整个数据集的过程是比繁重的,根据配置可能要几分钟才快照一次,如果服务器宕机,那么就可能丢失几分钟的数据;
    • Redis数据集较大时,fork的子进程要完成快照会比较耗CPU、耗时;

    AOF

    优点:

    • 数据更完整,安全性更高,秒级数据丢失(取决fsync策略,如果是everysec,最多丢失1秒的数据);
    • AOF文件是一个只进行追加的日志文件,且写入操作是以Redis协议的格式保存的,内容是可读的,适合误删紧急恢复;

    缺点:

    • 对于相同的数据集,AOF文件的体积要大于RDB文件,数据恢复也会比较慢;
    • 根据所使用的fsync策略,AOF的速度可能会慢于RDB。 不过在一般情况下,每秒fsync的性能依然非常高;

    RDB和AOF如何选择

    通常来说,应该同时使用两种持久化方案,以保证数据安全。

    • 如果数据不敏感,且可以从其他地方重新生成,可以关闭持久化。
    • 如果数据比较重要,且能够承受几分钟的数据丢失,比如缓存等,只需要使用RDB即可。
    • 如果是用做内存数据,要使用Redis的持久化,建议是RDB和AOF都开启。
    • 如果只用AOF,优先使用everysec的配置选择,因为它在可靠性和性能之间取了一个平衡。

    当RDB与AOF两种方式都开启时,Redis会优先使用AOF恢复数据,因为AOF保存的文件比RDB文件更完整。

    参考资料

     
  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/zhboke/p/14233548.html
Copyright © 2011-2022 走看看