Redis配置文件代码讲解

dananhai 2020-03-05

Redis配置文件解析网上都有,这里不赘述了。提供一些值得修改的参数,标注红色的参数尤其需要注意,不然容易出现主从全量同步死循环

NETWORK
bind 127.0.0.1 默认是bind 127.0.0.1,注释掉
protected-mode no 默认protected-mode yes,改为no
port 6379  建议修改掉,避免使用默认端口
tcp-backlog 511 建议调大至2048并同时调大Linux内核参数 /proc/sys/net/core/somaxconn 至2048
GENERAL
logfile "" 建议修改日志的路径
SNAPSHOTTING

save 900 1
save 300 10
save 60 10000  注释掉这三行触发式rdb持久化,高并发情况下开启触发式持久化容易一直做save操作

dbfilename dump.rdb 根据实际情况修改,建议修改为dump+端口.rdb

dir ./ 根据实际情况修改 ,建议修改成和logfile,配置文件在同一个父目录下 如/app/redis/{conf,data,log}
REPLICATION

replica-read-only yes  建议修改为no,当主节点故障时,可立即使用从节点。

repl-timeout 60  建议设置更久,避免高并发情况下大节点全量复制无法在60秒内完成

repl-backlog-size 1mb 建议设置为100mb+,避免全量复制生成rdb+传输rdb+加载rdb时,主节点的复制挤压缓冲区不够用导致一直在全量复制。
LAZY FREEING  惰性删除参数,开启配置项避免大key过期删除导致服务阻塞

lazyfree-lazy-eviction yes 驱逐策略惰性删除,建议开启
lazyfree-lazy-expire yes 过期key惰性删除,建议设置开启
lazyfree-lazy-server-del yes del操作惰性删除,建议开启
replica-lazy-flush yes    flush惰性删除,建议开启
APPEND ONLY MODE

appendonly yes  建议从节点开启

appendfilename "appendonly.aof" 根据实际端口修改,建议修改为appendonly+端口.aof

appendfsync always 从节点建议修改为everysec,折中持久化策略,每秒持久化一次到aof中。
auto-aof-rewrite-percentage 100 根据实际情况修改,避免在业务高峰aof文件刚好膨胀100%,触发自动aofrewrite操作,阻塞服务
ADVANCED CONFIG

client-output-buffer-limit replica 0 0 0 建议关闭主从复制buffer限制,避免高并发情况下,slave无法在硬限制和软限制期间完成全量同步,造成主从同步死循环
ACTIVE DEFRAGMENTATION

activedefrag no 建议关闭,避免在高峰段出现碎片回收。碎片率上升时,可在业务低峰时段开启。

知识点扩展:

如果认为Redis是一个key value存储, 可以使用它来代替MySQL;如果认为它是一个可以持久化的cache, 可能只是用它保存一些频繁访问的临时数据(代替Memcached);除此之外,还可以把Redis当做一个轻量级的消息队列使用,因为它内置就支持 list数据结构和PUB/SUB命令;还可以当做一个轻量级的分布式锁系统。Redis是REmote DIctionary Server的缩写,在Redis在官方网站的解释是:

Redis is an open source, advanced key-value store.
It is often referred to as a data structure server since keys
can contain strings, hashes, lists, sets and sorted sets.

相关推荐

DiamondTao / 0评论 2020-08-30