《Redis7平台配置解析.docx》由会员分享,可在线阅读,更多相关《Redis7平台配置解析.docx(12页珍藏版)》请在第一文库网上搜索。
1、Redis7平台配置解析一、简述Redis7有很多新的功能、bug修改、特性优化,因此也伴随着很多新配置和变化,本文进行逐一说明。注:相关推荐配置只代表个人观点,实际要具体情况具体分析,没有万能配二、配置详解1.1appenddirname(#9788)片认:appendon1ydir,动态修改:no(1)配置说明:定义存储aof文件的目录名,它和配置dir组成绝对目录。(2)推荐配置:和部署目录相关:决定是端口号或者默认值。1. 2aof-timestamp-enab1ed(#9788)默认:no,动态修改:yes(1)配置说明:aof是否支持时间戳,如设置会变成:(2)推荐配置:结合现有体
2、系决定。注:有关新的aof,会有单独文章说明。2. shutdown-timeout(#9872)认值:10,动态修改:tru,当执行ShUtdOWn命令时,为SIaVe节点复制剩余OffSet的最大等待时间,一定程度上提高一致性。如果该配置为0,则该功能失效。在Rediscron内如果发现shutdown-timeout不等于0,则会等待相关s1ave节点复制完毕。相关函数过长如感兴趣自行阅读。server.CcronIif(SerVer.mstime=SerVer.shutdownJnStimeisReadyT(2)推荐配置:可根据自身写入、网络等等情况进行配置,个人认为默认值基本0K。3
3、. maxmemory-c1ients(#8687)默认值:0,动态修改:true(1)前情回顾(7.0之前)(a)对单个客户端输出缓冲区限制:二Iient-OUtPUt-bufferIimitnorma1SiaVe:PUbSUbhard1imitSOrtIinIitSeCendS1(b)对单个客户端的输入缓冲区,之前固定为Igb,在4.0之后改为可配置Iient-query-bufferTimitIgt(2)配置说明:给所有CIierItS加了最大内存的限制,当超过该限制后,RediS将会按照一定策略杀掉问题客户端,称为C1ientevictiono有两种配置方式:(a)具体值ImaXnIe
4、mOry-CIientSIg1(b)百分比:为maxmemory配置的XX%maxmemory-c1ients1(3)推荐配置:如果整机部署密度较高,建议配置一定百分比,但会有客户端被干掉的风险。4. rep1-disk1ess-sync-ma-rep1icas(#10092)默认:0,动态修改:yes(1)配置说明:无盘复制下,rep1-disk1ess-sync-de1ay保证串行,rep1-disk1ess-sync-max-rep1icas是在rep1-disk1ess-sync-de1ay内的并行个数。(2)推荐配置:可根据从节点个数,机器部署密度等情况设置。ps:通常都是一主一从,
5、不需要该配置。5. 1ist-ma-1istpack-,hash-max-1istpack-,zset-ma-1istpack-*(#8887,#9366,#9740)IhaSh-ma-1istpack-entries512IhaSh-max-Iistpack-va1ueIIiSt-maxTistpack-SiZe-IZSet-maxTistpack-entries128IZSet-max-IiStpackra1ue(1)配置说明:Redis7中ZiP1iSt被IiStPaCk替代,所以相关配置都变为IiStPack,有关1istpack会有单独文章说明。(2)推荐配置:建议结合单核CPU使用
6、量、数据量等综合评估成本收益、性能、可用性。6. busy-rep1y-thresho1d(#9963)默认:5000,动态修改:yes,设置为0关闭该功能|(1)配置说明:IuaTimeTimit的别名,分别服务于1ua、function、modu1e的一些特殊命令(2)推荐配置:谨慎设置,超时后RediS只允许一些特殊命令(如下),其他命令均返回aBUSYerror.ISCRIPTKI11,FUNCT1ONKI11,SHuTDoWNNOSAVEandPOSSibIySOnK7.11atency-tracking(#9462)默认:yes,动态修改:yes(1)配置说明:是否开启命令1ate
7、ncy追踪(2)推荐配置:开启7. 21atency-tracking-info-percenti1es(#9462)默认:509999.9,动态修改:yes(1)配置说明:对应p50(中位数)、P99、p99.9每个命令的耗时,例如:infoIatenCyStatS1nceensecan527035905599682atenceenese1Z50=92399=92399=923HIIatency_percenti1es_uSeJConfig!rewrite:p50=1015.807,p99=1015.807,p9IIatency_percenti1es_usec_subscribe:p50=
8、3.007,p99=4.015,p99.9二4.015tencpeense:omand5310H99310H99971911atency_percenti1es_usec_c1ient!setname:p50-0.001,p99-2.007,p99.9-2.O(2)推荐配置:可以自行调配8. c1uster-port(#9389)默认:0,动态修改:no,范围065535(1)配置说明:redisCIUSter默认的通信(bus)端口=port+10000,该值可以动态设置指定端口,例如IPOrt=6379c1uste1POrt=0bus-port=16379port=6380CIUSte1P
9、Ort=5000bus-port355IPOrt=6381C1USte1POrt二15000bus-port二15000(2)推荐配置:如不是强烈需要,否则不要设置,会增加复杂性。9. bind-source-addr(#9142)默认:”“,动态修改:yes(1)配置说明:指定了redis作为客户端时,建立连接时指定源ip地址。包括: 主从链接中,从节点链接到主节点建立连接时的源ip地址 Ser1tine1链接所有实例时,建立连接时的源ip地址 CIUSter模式中,建立到其他节点的通信连接时的源ip地址(2)推荐配置:如果有多个ip地址,并且有将正常请求和redis内部请求分开的需求时,可
10、以使用此配置;否则,不建议设置。10.1c1uster-preferred-endpoint-type(#9530)认:ip,动态修改:yes,有三个值:ip、hostname、UnknoWn-endpoint(1)配置说明:7.OBredisCIUSter除了支持ip,还支持了hostnameo(2)推荐配置:有强需求可以使用。10. 2c1uster-announce-hostname(#9530)默认:空,动态修改:yes(1)配置说明:如果c1uster-preferred-endpoint-type设置为hostname,那c1uster-announce-hostname就是具体的
11、值O(2)推荐配置:有强需求可以使用。11. cIuster-a11ow-pubsubshard-when-down(#8621)默认:yes,动态修改:yes(1)配置说明:当redisc1uster处于downstate时,是否可以继续使用shardpubsubo(2)推荐配置:保持默认值,但是不建议在集群版用这个功能,单独部署一个redissentine1做pubsub会更好。12. c1uster-1ink-sendbuf-1imit(#9774)认:0(表示无穷大),动态修改:yes(1)配置说明:针对redisc1uster中每一个C1USterbus1ink*ssendbuffe
12、r容量进行限制,超过这个限制会被“干掉”。相关查看命令:c1uster1inks相关统计infomemory中的mem_c1uster_1inks是1ink的总内存(2)推荐配置:建议配置一个合理值,因为正常情况下每个Iink的内存量不会很大。13. enab1e-protected-configs(#9920)认:no,动态修改:no(1)配置说明:设置是否允许对保护的配置进行动态配置;目前主要包括: dbfiIename dir(2)推荐配置:推荐默认设置即可。14. enab1e-debug-command(#9920)默认:no,动态修改:no(1)配置说明:为了安全考虑,禁止掉deb
13、ug命令,且不能动态修改(2)推荐配置:debug命令在一些场景很有帮助,但对安全性有一些影响,需要综合评价,一定注意此配置不可以动态修改。15. enab1e-modu1e-command(#9920)默认:no,动态修改:no(1)配置说明:为了安全考虑,禁止掉modu1e命令,且不能动态修改(2)推荐配置:是否需要modu1e来决定16. 1oading-process-events-interva1-bytes默认:2MB,动态修改:yes(1)配置说明:maximumsing1ereadorwritechunksize(2)推荐配置:如无特殊,默认即可。三、默认值变化1 .modu1e和debug因为安全考虑,默认被禁止,且不能动态修改,这个一定注意。(#9920)2 .无盘复制作为默认选项,这个一定注意。(#10092)四、总结随着一些新功能的加入,Redis也添加了很多新配置,例如appenddirnamemaxmemory-c1ients1atency-*,IiStPaCk相关等,同时有一些默认值也发生变化(默认禁止modu1e和debug、默认开启无盘复制)-全文完-