参考
-
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. 可用。
快照配置
- save 持久化快照
save 900 1 #表示15分钟 至少有一个KYE变化,就会触发save命令.
save 300 10 #表示5分钟, 至少有10个key变化, 就会触发save命令
save 60 10000 # 表示1分钟, 至少有1万key变化,就会触发Save命令.
- rdbcompression yes 是否压缩(yes|no) 开启会耗费CPU,采用lzf压缩
- rdbchecksum yes 对rdb数据进行校验,耗费CPU资源,默认为yes
- dbfilename dump.rdb rdb文件名称
- dir ./ rdb文件存储目录, ./表示相对目录, 和redis.conf同一个目录.
- stop-writes-on-bgsave-error yes 后台存储过程中如果出现错误现象, 是否停止保存操作.建议yes
AOF配置
redis的no-appendfsync-on-rewrite参数
- 当主进程也在aof操作磁盘IO, bgsave or bgrewriteaof也在子进程中操作磁盘IO,如果同时操作就会出现IO冲然,必定一个阻塞.
- 默认为no, 是最安全的方式,不会丢失数据,但是要忍受阻塞的问题.
- 设置yes,相当于将appendfsync设置成no,不再操作磁盘IO,而是写缓冲.待rewrite写完再写磁盘,不过会出现30s的数据丢失.不会出现阻塞.
auto-aof-rewrite-percentage 100 自动重写日志, 如果日志达到上次重写的100%大小,则触发
auto-aof-rewrite-min-size 64mb 配置重写触发日志最小大小.
aof-load-truncated yes
- 如果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修复.
- 如果no, 直接报错.上面的错一样.
aof-use-rdb-preamble yes 4.0之后,添加RDB和AOF混合日志模式, 默认是开启的.
- 使用RDB恢复会丢失大量数据,而使用AOF模式全量加载, 长期运行AOF会越来越大,意味着加载时间也会增长.所以官方采用混合模式.
- 会将rdb和aof日志混合存入在appendonly.aof文件里.
- 在重写AOF文件时,Redis会将数据以RDB的格式作为AOF文件的开始部分。在重写之后,Redis会继续以AOF格式持久化写入操作。默认值为no。
aof-rewrite-incremental-fsync yes
- 如果aof进行重写, 主进程继续响应命令, 则写入"重写缓冲区" (为了不丢失正在重写时的命令)
- 在进行aof其实是有二个缓冲区, 一个是aof缓写区, 一个是重写缓冲区.
- 默认为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会立即发送同步数据,没有延迟
前者关注性能,后者关注一致性
网友评论