微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

redis lettuce 调优

合理的参数设置可以为你的redis客户端保驾护航,下面将对lettuce使用的一些重要参数进行说明和建议

序号

参数名

含义

认值

使用建议

序号

参数名

含义

认值

使用建议

1
enableAllAdaptiveRefreshTriggers
redis cluster客户端更新拓扑结构的策略认无刷新策略使用enableAllAdaptiveRefreshTriggers开启所有的RefreshTriggers
2
closeStaleConnections
当刷新拓扑结构后,关闭旧的连接truetrue 建议使用true,减少不必要的连接
3
enablePeriodicRefresh
refreshPeriod
周期性刷新拓扑结构

false

60s

false

10s

4
refreshTriggersReconnectAttempts
刷新拓扑结构前获取连接的最大重试次数52
5
adaptiveRefreshTriggersTimeout
刷新拓扑结构请求的超时时间30s1000ms
6
autoReconnect
连接断开是否进行重新连接true

true

自动重连在面对各种复杂网络情况下是非常有必要的。但是需要关注的是每次重连失败后,后续尝试再次重连的时间间隔会变长,且这是个无限循环,无限失败的情况下,间隔时间太长会是个隐患。

7
cancelCommandsOnReconnectFailure
取消命令当重连失败时false

false

这是一个需要自己评估的参数,当能接受命令可以失败的情况的话,可以开启。但是针对更多实用场景建议false。

8
disconnectedBehavior
当处于断连状态时,对命令的不同执行情况进行设置
disconnectedBehavior.Default
disconnectedBehavior.Default

重连成功,则接受命令,失败则拒绝执行命令

9
readFrom
可以优先或者选择从Master/Replica去读数据,进行读写分离认可不配置,此时使用当前连接去读数据
ReadFrom.MASTER
目前不支持读写分离,显式配置使用Master去读连接
10
commandTimeout
命令的超时时间60s

100ms

常规的操作应该限定在一个非常小的时间里

11
shutdownTimeout
客户端关闭的超时时间100ms

100ms

使用认的配置即可

12
setValidateConnection
设置是否开启有效连接,开启时当连接失败时会创建新的连接,但是每次执行命令会多一次Ping的开销falsefalse 依据当前使用场景来定,当处于一个高qps场景下,ping命令造成的开销也是不可忽略的
13
-dio.netty.eventLoopThreads
设置netty客户端io线程池、计算线程池大小
Math.max(1, SystemPropertyUtil.getInt("io.netty.eventLoopThreads",
 Math.max(MIN_IO_THREADS, Runtime.getRuntime().availableProcessors())))
使用认值

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐