-
因为redisson是基于java的网络编程框架netty实现,所以首先提供了暴露了netty相关配置参数;
-
redis服务端要么是单机要么是多机,那么这里必然存在主从相关设置;
-
redisson作为客户端,如果频繁去创建和关闭连接,那么性能必然大幅下降,那么这里必然有连接池相关配置;
-
考虑到安全相关,所以redis还需要有SSL相关设置;
-
后面还有客户端操作失败重试相关设置参数和根据不同部署的特殊配置;
1、netty相关:
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
codec | 默认值: org.redisson.codec.JsonJacksonCodec | √ | √ | √ | √ | √ |
threads | 默认值: 当前处理核数量 * 2,这个线程池数量被所有RTopic对象监听器,RRemoteService调用者和RExecutorService任务共同共享。 | √ | √ | √ | √ | √ |
nettyThreads | 默认值: 当前处理核数量 * 2,这个线程池数量是在一个Redisson实例内,被其创建的所有分布式数据类型和服务,以及底层客户端所一同共享的线程池里保存的线程数量。 | √ | √ | √ | √ | √ |
executor | 单独提供一个用来执行所有RTopic对象监听器,RRemoteService调用者和RExecutorService任务的线程池(ExecutorService)实例。 | √ | √ | √ | √ | √ |
eventLoopGroup | 用于特别指定一个EventLoopGroup. EventLoopGroup是用来处理所有通过Netty与Redis服务之间的连接发送和接受的消息。每一个Redisson都会在默认情况下自己创建管理一个EventLoopGroup实例。因此,如果在同一个JVM里面可能存在多个Redisson实例的情况下,采取这个配置实现多个Redisson实例共享一个EventLoopGroup的目的。只有io.netty.channel.epoll.EpollEventLoopGroup或io.netty.channel.nio.NioEventLoopGroup才是允许的类型。 | √ | √ | √ | √ | √ |
useLinuxNativeEpoll | 默认值: false,如果服务器的绑定地址是本地回路网络接口(loopback interface)则自动激活一个UNIX域套接字。并同时采用epoll作为传输方式。请自行添加 netty-transport-native-epoll 依赖库。 | √ | √ | √ | √ | √ |
2、redis服务端IP和端口
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
address | 通过host:port的格式来指定节点地址。 | √ | ||||
masterAddress | 通过host:port的格式来指定主节点地址。 | √ | ||||
addSlaveAddress | 通过host:port的格式来指定从节点的地址。多个节点可以一次性批量添加。 | √ | ||||
addSentinelAddress | 通过host:port的格式来指定哨兵节点的地址。多个节点可以一次性批量添加。 | √ | ||||
addNodeAddress | 通过host:port的格式来添加Redis集群节点的地址。多个节点可以一次性批量添加。 | √ | ||||
nodeAddresses | 通过host:port的格式来指定云托管模式的多个Redis集群节点的地址。多个节点可以一次性批量添加。所有的主从节点必须在配置阶段全部体现出来。 | √ |
3、redisson客户端负载均衡
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
scanInterval | 对主节点变化节点状态扫描的时间间隔。单位是毫秒。 | √ | √ | |||
readMode | 默认值: SLAVE(只在从服务节点里读取) 注:在从服务节点里读取的数据说明已经至少有两个节点保存了该数据,确保了数据的高可用性。 设置读取操作选择节点的模式。 可用值为: SLAVE - 只在从服务节点里读取。 MASTER - 只在主服务节点里读取。 MASTER_SLAVE - 在主从服务节点里都可以读取。 | √ | √ | √ | √ | |
subscriptionMode | √ | √ | √ | √ | ||
loadBalancer | 默认值: org.redisson.connection.balancer.RoundRobinLoadBalancer 在使用多个Elasticache Redis服务节点的环境里,可以选用以下几种负载均衡方式选择一个节点: org.redisson.connection.balancer.WeightedRoundRobinBalancer - 权重轮询调度算法 org.redisson.connection.balancer.RoundRobinLoadBalancer - 轮询调度算法 org.redisson.connection.balancer.RandomLoadBalancer - 随机调度算法 | √ | √ | √ | √ |
4、发布和订阅连接池配置
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
subscriptionConnectionMinimumIdleSize | 默认值:1 用于发布和订阅连接的最小保持连接数(长连接)。Redisson内部经常通过发布和订阅来实现许多功能。长期保持一定数量的发布订阅连接是必须的。 | √ | √ | √ | √ | √ |
subscriptionsPerConnection | 默认值:50 用于发布和订阅连接的连接池最大容量。连接池的连接数量自动弹性伸缩。 | √ | √ | √ | √ | √ |
subscriptionConnectionPoolSize | 默认值:50 多从节点的环境里,每个 从服务节点里用于发布和订阅连接的连接池最大容量。连接池的连接数量自动弹性伸缩。 | √ | √ | √ | √ | √ |
5、连接池配置
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
slaveConnectionMinimumIdleSize | 默认值:10 多从节点的环境里,每个 从服务节点里用于普通操作(非 发布和订阅)的最小保持连接数(长连接)。长期保持一定数量的连接有利于提高瞬时读取反映速度。 | √ | √ | √ | √ | |
slaveConnectionPoolSize | 默认值:64 多从节点的环境里,每个 从服务节点里用于普通操作(非 发布和订阅)连接的连接池最大容量。连接池的连接数量自动弹性伸缩。 | √ | √ | √ | √ | |
connectionMinimumIdleSize | 默认值:10 最小保持连接数(长连接)。长期保持一定数量的连接有利于提高瞬时写入反应速度。 | √ | ||||
connectionPoolSize | 默认值:64 连接池最大容量。连接池的连接数量自动弹性伸缩。 | √ | ||||
masterConnectionMinimumIdleSize | masterConnectionMinimumIdleSize(主节点最小空闲连接数) 默认值:10 多从节点的环境里,每个 主节点的最小保持连接数(长连接)。长期保持一定数量的连接有利于提高瞬时写入反应速度。 | √ | √ | √ | √ | |
masterConnectionPoolSize | 默认值:64 主节点的连接池最大容量。连接池的连接数量自动弹性伸缩。 | √ | √ | √ | √ | |
idleConnectionTimeout | 默认值:10000 如果当前连接池里的连接数量超过了最小空闲连接数,而同时有连接空闲时间超过了该数值,那么这些连接将会自动被关闭,并从连接池里去掉。时间单位是毫秒。 | √ | √ | √ | √ | √ |
6、超时设置
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
connectTimeout | 默认值:10000 同节点建立连接时的等待超时。时间单位是毫秒。 | √ | √ | √ | √ | √ |
timeout | 默认值:3000 等待节点回复命令的时间。该时间从命令发送成功时开始计时。 | √ | √ | √ | √ | √ |
7、失败重试配置
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
retryAttempts | 默认值:3 如果尝试达到 retryAttempts(命令失败重试次数) 仍然不能将命令发送至某个指定的节点时,将抛出错误。如果尝试在此限制之内发送成功,则开始启用 timeout(命令等待超时) 计时。 | √ | √ | √ | √ | √ |
retryInterval | 默认值:1500 在一条命令发送失败以后,等待重试发送的时间间隔。时间单位是毫秒。 | √ | √ | √ | √ | √ |
reconnectionTimeout | 默认值:3000 当与某个节点的连接断开时,等待与其重新建立连接的时间间隔。时间单位是毫秒。 | √ | √ | √ | √ | √ |
failedAttempts | 默认值:3 在某个节点执行相同或不同命令时,连续 失败 failedAttempts(执行失败最大次数) 时,该节点将被从可用节点列表里清除,直到 reconnectionTimeout(重新连接时间间隔) 超时以后再次尝试。 | √ | √ | √ | √ | √ |
8、redis库和密码设置
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
database | 默认值:0 尝试连接的数据库编号。 | √ | √ | √ | √ | √ |
password | 默认值:null 用于节点身份验证的密码。 | √ | √ | √ | √ | √ |
clientName | 默认值:null 在Redis节点里显示的客户端名称。 | √ | √ | √ | √ | √ |
9、SSL相关设置
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
sslEnableEndpointIdentification | 默认值:true 开启SSL终端识别能力。 | √ | √ | √ | √ | √ |
sslProvider | 默认值:JDK 确定采用哪种方式(JDK或OPENSSL)来实现SSL连接。 | √ | √ | √ | √ | √ |
sslTruststore | 默认值:null 指定SSL信任证书库的路径。 | √ | √ | √ | √ | √ |
sslTruststorePassword | 默认值:null 指定SSL信任证书库的密码。 | √ | √ | √ | √ | √ |
sslKeystore | 默认值:null 指定SSL钥匙库的路径。 | √ | √ | √ | √ | √ |
sslKeystorePassword | 默认值:null 指定SSL钥匙库的密码。 | √ | √ | √ | √ | √ |
10、特有的配置
配置参数 | 配置介绍 | 单节点 | 主从 | 哨兵 | 集群 | 云托管 |
---|---|---|---|---|---|---|
dnsMonitoring | 默认值:false 在启用该功能以后,Redisson将会监测DNS的变化情况。 | √ | ||||
dnsMonitoringInterval | 默认值:5000 监测DNS的变化情况的时间间隔。 | √ | ||||
masterName | 主服务器的名称是哨兵进程中用来监测主从服务切换情况的。 | √ |
WiKi
https://github.com/redisson/redisson/wiki/2.-%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95.
参考
https://blog.csdn.net/u010963948/article/details/79240050.
https://blog.csdn.net/zilong_zilong/article/details/78252037.
https://zhuanlan.zhihu.com/p/135864820.
结束
整理不易,记得点个赞,你的支持是我最大的动力