redis lettuce 调优
作者:互联网
合理的参数设置可以为你的redis客户端保驾护航,下面将对lettuce使用的一些重要参数进行说明和建议
序号 | 参数名 | 含义 | 默认值 | 使用建议 |
---|---|---|---|---|
序号 | 参数名 | 含义 | 默认值 | 使用建议 |
1 | enableAllAdaptiveRefreshTriggers | redis cluster客户端更新拓扑结构的策略 | 默认无刷新策略 | 使用enableAllAdaptiveRefreshTriggers开启所有的RefreshTriggers |
2 | closeStaleConnections | 当刷新拓扑结构后,关闭旧的连接 | true | true 建议使用true,减少不必要的连接 |
3 | enablePeriodicRefresh refreshPeriod | 周期性刷新拓扑结构 | false 60s | false 10s |
4 | refreshTriggersReconnectAttempts | 刷新拓扑结构前获取连接的最大重试次数 | 5 | 2 |
5 | adaptiveRefreshTriggersTimeout | 刷新拓扑结构请求的超时时间 | 30s | 1000ms |
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的开销 | false | false 依据当前使用场景来定,当处于一个高qps场景下,ping命令造成的开销也是不可忽略的 |
13 | -Dio.netty.eventLoopThreads | 设置netty客户端io线程池、计算线程池大小 | Math.max(1, SystemPropertyUtil.getInt("io.netty.eventLoopThreads", Math.max(MIN_IO_THREADS, Runtime.getRuntime().availableProcessors()))) | 使用默认值 |
标签:false,拓扑,redis,lettuce,调优,使用,重连,连接,客户端 来源: https://blog.csdn.net/u012693823/article/details/119041939