• REdis之RDB配置问题


    RDB配置:
    save 900 1
    save 300 10
    save 60 10000
    stop-writes-on-bgsave-error no
    rdbcompression yes
    rdbchecksum yes
    repl-diskless-sync no
    aof-use-rdb-preamble no
    rdb-save-incremental-fsync yes

    影响:
    易生成REdis客户端的连接超时。

    建议:
    如果已经开启了AOF,可关闭RDB,即将save参数值设置为空:save "";
    或者调大save参数,人工控制save执行时间点,将save放在空闲时段,
    但问题实际仍然存在,只是影响减少,同时需要调长client与REdis的超时时长。
    如果是REdis-5.0或以上版本,可以设置配置项rdb-save-incremental-fsync值为yes,
    以降低save时的影响,但之下的版本不支持rdb-save-incremental-fsync。

    理由:
    在生成RDB时,易导致客户端访问超时。
    截至REdis-5.0版本,如果开启了AOF,
    在进程启动时仍然只会加载AOF文件,并不会使用RDB文件,
    所以不生成RDB也是安全的。

    缺点:
    AOF文件不支持重启后的增量复制(可理解为断点续复制),
    而从REdis-4.0开始RDB支持增量复制。
    在不久的将来,AOF可能也会支持重启时的增量复制。
    一个比较简单的实现AOF支持增量复制方法,
    新增命令SETREPL,在每次fsync之前写入一笔SETREPL命令,
    该命令带两个参数,一是replid,二是offset,
    这样重启回放时,可以象RDB那样恢复replid和offset,
    而只需要对REdis做小量改动。

    保存RDB日志示例:
    62820:M 01 Apr 18:15:57.097 * 10000 changes in 60 seconds. Saving...
    62820:M 01 Apr 18:15:57.103 * Background saving started by pid 69409
    69409:C 01 Apr 18:15:57.427 * DB saved on disk
    69409:C 01 Apr 18:15:57.433 * RDB: 2 MB of memory used by copy-on-write
    62820:M 01 Apr 18:15:57.504 * Background saving terminated with success

    62820:M 01 Apr 18:16:58.098 * 10000 changes in 60 seconds. Saving...
    62820:M 01 Apr 18:16:58.104 * Background saving started by pid 75882
    75882:C 01 Apr 18:16:58.426 * DB saved on disk
    75882:C 01 Apr 18:16:58.433 * RDB: 2 MB of memory used by copy-on-write
    62820:M 01 Apr 18:16:58.505 * Background saving terminated with success

    62820:M 01 Apr 18:17:59.104 * 10000 changes in 60 seconds. Saving...
    62820:M 01 Apr 18:17:59.110 * Background saving started by pid 82326
    82326:C 01 Apr 18:17:59.419 * DB saved on disk
    82326:C 01 Apr 18:17:59.426 * RDB: 2 MB of memory used by copy-on-write
    62820:M 01 Apr 18:17:59.510 * Background saving terminated with success

  • 相关阅读:
    内存碎片
    《大规模分布式存储系统》笔记——单机存储系统、分布式系统
    数据库的范式
    一把剪刀看懂git reset 和它的三个参数
    如何判断一个链表是否有环?以及对一些文章的错误的看法
    自由树的计数 Labeled unrooted tree counting
    C语言里的指针探析——type *name[] 在函数参数里面,是一个二维指针
    CSAPP(深入理解计算机系统)读后感
    VIM一些常用命令,方法,配置
    Latex 常用知识点存档
  • 原文地址:https://www.cnblogs.com/aquester/p/10644775.html
Copyright © 2020-2023  润新知