[Redis] Redis構成

 

主な構成は次のとおりです。

#多网卡环境下,绑定指定网卡ip,只允许该网卡流量访问redis服务器
bind 0.0.0.0
#保护模式,默认yes开启,只允许bind设置的网卡流量访问服务器
protected-mode yes
#服务通讯端口
port 7000
#tcp连接ESTABLISHED状态的最大队列,不能大于Linux的somaxconn值。
tcp-backlog 511
#tcp连接空闲时间,达到空闲时间断开连接,0表示不断开。
timeout 0
#开启tcp长连接最大时间,单位秒,0表示不开启长连接
tcp-keepalive 30
#开启守护线程模式,yes开启redis进程pid写入到pidfile指定的文件中,no为窗口模式,退出启动窗口会关闭redis服务
daemonize yes
#监督功能
#可以通过upstart和systemd管理Redis守护进程
#no:没有监督互动
#upstart:通过将Redis置于SIGSTOP模式来启动信号
#systemd:signal systemd将READY = 1写入$ NOTIFY_SOCKET
#auto:检测upstart或systemd方法基于 UPSTART_JOB或NOTIFY_SOCKET环境变量
supervised no
#开启daemonize时将redis进程pid写入的文件
pidfile /var/run/redis_7000.pid
#日志级别,debug、verbose、notice、warning,日志量依次增少。
loglevel notice
#日志存储文件
logfile "/usr/local/redis-cluster/7000/redis.log"
#数据库数量,默认0,可选0-15.
databases 16
#窗口模式下,是否一直显示logo
always-show-logo yes
#快照配置,格式save <seconds> <changes>
#save ““ #不开启快照存储存储
save 3600 1 #3600秒内至少有一次变更将生成快照
#快照异常停止写入
#yes开启后生成快照时出现错误,则停止写入功能。
#no关闭,快照错误停止本次,不影响服务和下一次快照操作。
stop-writes-on-bgsave-error yes
#开启快照压缩,yes开启,会有额外cpu开销,有利于快照使用;no不开启
rdbcompression yes
#开启快照验证,yes开启,在快照末尾增加CRC,使用时可以验证快照完整性;no不开启
rdbchecksum yes
#制定快照文件名称
dbfilename dump.rdb
#rdb、aof文件存储路径
dir /usr/local/redis-cluster/7000/data
#是否使用过时数据,当slave和master断开,或者正在同步时触发,yes开启使用,返回当前缓存中的数据,no关闭,返回“SYNC with master in progress”提示信息。
replica-serve-stale-data yes
#是否开启salve节点只读模式,yes开启,salve节点只读;no关闭,可写入临时数据,但是在同步数据时被失效。
replica-read-only yes
#是否开启无磁盘同步模式,默认no关闭,使用磁盘同步,yes开启,使用socket同步。
repl-diskless-sync no
#开启无盘同步模式时,等待时间秒数。
repl-diskless-sync-delay 5
#是否开启延时同步模式,默认no关闭,减少同步延时但占用带宽。yes开启,有一定同步延时,但占用较少带宽
repl-disable-tcp-nodelay no
#节点优先级,值越小优先提升为master,0标识不参与提升。
replica-priority 100
#最大客户端连接数,大于这个数这返回'max number of clients reached'
maxclients 10000
#最大内存使用,当达到最大内存时,触发缓存回收机制(maxmemmory-policy配置)
#注意:同步slave的缓冲区不计算在内,当有多个slave时,需要占用更多的内存,适当减少maxmemory,不能占用服务器过多内存。
maxmemory 3g
#缓存淘汰策略,当缓存超过maxmemory时触发
# volatile-lru :根据LRU(最近最少使用)算法删除设置过期时间的key
# allkeys-lru :根据LRU算法删除任何key
# volatile-random :随机移除设置过过期时间的key
# allkeys-random :随机移除任何key
# volatile-ttl:移除即将过期的key(minor TTL)
# noeviction :不移除任何key,只返回一个写错误
maxmemory-policy allkeys-lru
#缓存惰性执行淘汰策略,no不开启,yes开启,延时释放可能导致超出最大内存。
lazyfree-lazy-eviction no
#是否对于设置了过期时间的key进行延时清理
lazyfree-lazy-expire no
#是否异步执行del命令,
lazyfree-lazy-server-del no
#是否异步清空内存
replica-lazy-flush no
#是否打开aof日志持久化。
appendonly no
#设置aof文件名称
appendfilename "appendonly.aof"
#aof持久化方式
# always :每一个写请求都进行刷盘,消耗较大
# everysec :推荐方案,每一秒刷盘一次
# no : 以来自动调度,几十秒一次
appendfsync everysec
# 是否在数据重写时进行同步追加,no关闭,先写入缓冲期,避免io冲突,yes开启。
no-appendfsync-on-rewrite no
# 自动重写aof的百分比,本次aof文件大于上一次aof的百分比时触发aof重写。
# 默认100,表示本次aof文件大于上一次aof文件1倍时进行aof重写。
# 与auto-aof-rewrite-min-size结合使用,必须满足2个条件。
auto-aof-rewrite-percentage 100
# 自动重写的aof文件最小容量,大于指定容量才能执行重写。
# 与auto-aof-rewrite-percentage结合使用,必须满足2个条件。
auto-aof-rewrite-min-size 64mb
# aof重写是否进行截断,aof重写redis服务发生异常后,重启redis服务的处理方式。
# yes开启,启动时会加载未写完的AOF文件并显示提示信息
# no关闭,无法启动,需要通过redis-check-aof工具修复
aof-load-truncated yes
# 是否开启混合持久化,yes开启,先加载rdb再执行aof的方式重写和恢复数据,速度快;no关闭。
aof-use-rdb-preamble yes
# lua脚本执行的最大时间,单位ms
lua-time-limit 5000
# 是否开启集群模式,yes开启,no关闭
cluster-enabled yes
# 集群的配置文件名称,集群中每个节点文件名称不能相同
cluster-config-file nodes-7000.conf
# 集群节点超时时间,超时节点将踢出集群,不可用
cluster-node-timeout 5000
# 判断从节点与主节点失联时间是否超过: (cluster-node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period,
# cluster-node-timeout为30秒 cluster-replica-validity-factor为10秒 repl-ping-replica-period为10秒时, 断开链接超过了310秒, 则不会请求成为主节点
# 为了达到最大限度的高可用性可以设置0, 意思为即使从节点与主节点不管失联多久都可以提升为主节点
cluster-replica-validity-factor 10
# 那些已分配完从节点的主节点, 仍然剩余几个个从节点的主节点将会触发节点分配, 默认值为1
cluster-migration-barrier 1
# 集群可用配置,默认yes停止服务,当有1个slot不可用时触发。
# no表示不停止服务
cluster-require-full-coverage no
# 停止集群故障转移,当主节点失效时, 从节点将成为主节点提供服务,默认no,开启故障转移,yes则关闭。
cluster-replica-no-failover no
# 集群down状态时是否可用进行数据查询,默认no不可用,yes可用查询数据。
# cluster-allow-reads-when-down no
 
# 定义慢查询,单位微秒us,10000us=10ms,不包含io时间。
slowlog-log-slower-than 10000
# 慢查询日志记录条数,可通过SLOWLOG RESET命令重置
slowlog-max-len 128
# 延时监控系统阀值,对慢查询采样,定时输出报告,单位ms,0为关闭。
latency-monitor-threshold 0
# key监控通知,监控key发生某些变化时,执行某些操作,有点复杂,这里就不说了。“”表示关闭。
notify-keyspace-events ""
 
# hash类型数据使用ziplist存储格式的条件,超出hash-max-ziplist-entries或hash-max-ziplist-entries限制是使用hashtable。
# 大于等于多个元素时
hash-max-ziplist-entries 512
# value大于等于多少个byte时
hash-max-ziplist-value 64
 
# quicklist类型数据中ziplist的大小设置
# 正值时表示链表中ziplist的个数限制
# 负值时表示链表中ziplist的长度限制:-1为4k,-2为8k,-3为16k,-4为32k,-5为64k。
list-max-ziplist-size -2
# 对quicklist两端的ziplist进行压缩,加快读取
# 0:表示两端的头尾节点,单0也不会进行压缩
# 1:从两端的第1个节点开始进行压缩,2、3……以此类推
list-compress-depth 0
# 当set数据类型中全是int字符时,可以使用intset数据类型存储,但必须小于等于最大限制,否则将使用hashtable存储。
set-max-intset-entries 512
# zset类型数据使用ziplist存储格式条件,超出zset-max-ziplist-entries或zset-max-ziplist-entries限制是使用skiplist。
# 大于等于多个元素时
zset-max-ziplist-entries 128
# value大于等于多少个byte时
zset-max-ziplist-value 64
 
#使用HyperLogLog的大小,超过3000bytes时使用HyperLogLog稀疏结构。
hll-sparse-max-bytes 3000
# stream处理配置
stream-node-max-bytes 4096
stream-node-max-entries 100
 
#是否对hash进行刷新,yes开启,使用1/100的cpu毫秒时间对hash进行刷新,减少内存占用。no关闭。
activerehashing yes
# 客户端读取输出控制,防止长时间等待
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
# redis空闲时间使用cpu处理一些内部任务,越高使用的越多
hz 10
# 是否自动调节hz
dynamic-hz yes
# 是否开启自动aof重写,默认32m触发一次,防止aof文件过大才触发。
aof-rewrite-incremental-fsync yes
# 是否开启自动rdb同步,默认32m触发一次,防止rdb文件过大才触发。
rdb-save-incremental-fsync yes

 

おすすめ

転載: blog.csdn.net/qq_41893274/article/details/113137549