redis.conf详解

作者: 百里江山 | 来源:发表于2020-01-11 21:16 被阅读0次

参考

  1. https://www.cnblogs.com/zxtceq/p/7676911.html
    https://blog.csdn.net/weixin_41436549/article/details/83820214

replica-serve-stale-data

表示:当与master断开连接, slave就是否继续可用.
yes|no 默认是yes. 可用。

快照配置

  1. save 持久化快照
save 900 1  #表示15分钟 至少有一个KYE变化,就会触发save命令.
save 300 10 #表示5分钟, 至少有10个key变化, 就会触发save命令
save 60 10000 # 表示1分钟, 至少有1万key变化,就会触发Save命令.
  1. rdbcompression yes 是否压缩(yes|no) 开启会耗费CPU,采用lzf压缩
  2. rdbchecksum yes 对rdb数据进行校验,耗费CPU资源,默认为yes
  3. dbfilename dump.rdb rdb文件名称
  4. dir ./ rdb文件存储目录, ./表示相对目录, 和redis.conf同一个目录.
  5. stop-writes-on-bgsave-error yes 后台存储过程中如果出现错误现象, 是否停止保存操作.建议yes

AOF配置

redis的no-appendfsync-on-rewrite参数

  1. 当主进程也在aof操作磁盘IO, bgsave or bgrewriteaof也在子进程中操作磁盘IO,如果同时操作就会出现IO冲然,必定一个阻塞.
  2. 默认为no, 是最安全的方式,不会丢失数据,但是要忍受阻塞的问题.
  3. 设置yes,相当于将appendfsync设置成no,不再操作磁盘IO,而是写缓冲.待rewrite写完再写磁盘,不过会出现30s的数据丢失.不会出现阻塞.

auto-aof-rewrite-percentage 100 自动重写日志, 如果日志达到上次重写的100%大小,则触发
auto-aof-rewrite-min-size 64mb 配置重写触发日志最小大小.
aof-load-truncated yes

  1. 如果yes, 会尽量加载更多的数据, 破坏严重无法加载文件, 则日志里报: Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename> 提醒你aof文件错误啦,无法加载,需要使用redis-check-aof修复.
  2. 如果no, 直接报错.上面的错一样.

aof-use-rdb-preamble yes 4.0之后,添加RDB和AOF混合日志模式, 默认是开启的.

  1. 使用RDB恢复会丢失大量数据,而使用AOF模式全量加载, 长期运行AOF会越来越大,意味着加载时间也会增长.所以官方采用混合模式.
  2. 会将rdb和aof日志混合存入在appendonly.aof文件里.
  3. 在重写AOF文件时,Redis会将数据以RDB的格式作为AOF文件的开始部分。在重写之后,Redis会继续以AOF格式持久化写入操作。默认值为no。

aof-rewrite-incremental-fsync yes

  1. 如果aof进行重写, 主进程继续响应命令, 则写入"重写缓冲区" (为了不丢失正在重写时的命令)
  2. 在进行aof其实是有二个缓冲区, 一个是aof缓写区, 一个是重写缓冲区.
  3. 默认为32MB,防止单次刷盘数据过多造成硬盘阻塞。

rdb-save-incremental-fsync yes
同上

Replication配置

replicaof 192.168.21.22 6381

连接master服务的ip, port

masterauth 123456
如果master有密码则在此设置

replica-serve-stale-data yes
yes主从正在复制是否继续提供对外服务, 不阻塞.

no 主从正在复制阻塞状态停止对外服务. 阻塞的.

replica-read-only yes

slave只提供读操作.

repl-diskless-sync no
是否使用无盘复制.
yes是一边进行内存复制,一边socket发送给slave
no是先对内存全量复制,然后再发送rdb文件.

repl-diskless-sync-delay 5
如果使用无盘则设置同步延时 5秒.

repl-ping-replica-period 10
设置向master发送ping的间隔时间.

min-slaves-to-write <number of slaves> master最少有几台从正常连接才会写数据,为了数据一致性
min-slaves-max-lag <number of seconds> 延时设置

repl-disable-tcp-nodelay no 是否合并命令.
yes: redis会合并小的TCP包从而节省带宽,但会增加同步延迟(40ms),造成master与slave数据不一致
no: 则redis master会立即发送同步数据,没有延迟
前者关注性能,后者关注一致性

相关文章

网友评论

    本文标题:redis.conf详解

    本文链接:https://www.haomeiwen.com/subject/mvskactx.html