Files
SIPAIIS_WMS_JSSW/src/main/java/com/sipai/config/RedissonConfig.java

130 lines
4.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.sipai.config;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.client.codec.Codec;
import org.redisson.codec.JsonJacksonCodec;
import org.redisson.config.Config;
import org.redisson.config.SingleServerConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.TimeUnit;
/**
* @Author : YYJ
* @CreateTime : 2021/9/14
* @Description :
**/
@Configuration
public class RedissonConfig {
private static String MODE_SINGLE = "single";
private static String MODE_CLUSTER = "cluster";
@Value("${redis.mode}")
public String mode;
@Value("${redis.host}")
public String host;
@Value("${redis.port}")
public String port;
// @Value("${redis.database}")
// public String database;
@Value("${redis.password}")
public String password;
@Value("${redis.timeout:10000}")
public int timeout;
@Value("${redis.maxIdle:100}")
public int maxIdle;
@Value("${redis.maxActive:300}")
public int maxActive;
@Value("${redis.testOnBorrow:true}")
public boolean testOnBorrow;
@Value("${cluster1.host.port:}")
public String cluster1;
@Value("${cluster2.host.port:}")
public String cluster2;
@Value("${cluster3.host.port:}")
public String cluster3;
@Value("${cluster4.host.port:}")
public String cluster4;
@Value("${cluster5.host.port:}")
public String cluster5;
@Value("${cluster6.host.port:}")
public String cluster6;
@Bean
public RedissonClient redissonClient(){
RedissonClient redisson = null;
Config conf = new Config();
if(MODE_SINGLE.equals(mode)) {//单机
//单节点模式
SingleServerConfig singleServerConfig = conf.useSingleServer();
//设置连接地址redis://127.0.0.1:6379
singleServerConfig.setAddress("redis://" + host + ":" + port);
//设置连接密码
singleServerConfig.setPassword(password);
// 设置超时时间(毫秒)
singleServerConfig.setTimeout(timeout);
// 设置连接池大小
singleServerConfig.setConnectionMinimumIdleSize(Math.min(10, maxIdle));
singleServerConfig.setConnectionPoolSize(maxActive);
// 设置空闲连接超时
singleServerConfig.setIdleConnectionTimeout(10000);
// 设置 ping 间隔,保持连接活跃
singleServerConfig.setPingConnectionInterval(10000);
// 设置失败重试次数
singleServerConfig.setRetryAttempts(3);
// 设置重试间隔
singleServerConfig.setRetryInterval(1500);
// 设置数据库索引
// singleServerConfig.setDatabase(Integer.valueOf(database));
}else if(MODE_CLUSTER.equals(mode)){//集群
conf.useClusterServers()
.setScanInterval(2000)
.setTimeout(timeout)
.setMasterConnectionMinimumIdleSize(Math.min(10, maxIdle))
.setMasterConnectionPoolSize(maxActive)
.setSlaveConnectionMinimumIdleSize(Math.min(10, maxIdle))
.setSlaveConnectionPoolSize(maxActive)
.setIdleConnectionTimeout(10000)
.setPingConnectionInterval(10000)
.setRetryAttempts(3)
.setRetryInterval(1500);
if(cluster1!=null && !cluster1.isEmpty()){
conf.useClusterServers().addNodeAddress("redis://" + cluster1);
}
if(cluster2!=null && !cluster2.isEmpty()){
conf.useClusterServers().addNodeAddress("redis://" + cluster2);
}
if(cluster3!=null && !cluster3.isEmpty()){
conf.useClusterServers().addNodeAddress("redis://" + cluster3);
}
if(cluster4!=null && !cluster4.isEmpty()){
conf.useClusterServers().addNodeAddress("redis://" + cluster4);
}
if(cluster5!=null && !cluster5.isEmpty()){
conf.useClusterServers().addNodeAddress("redis://" + cluster5);
}
if(cluster6!=null && !cluster6.isEmpty()){
conf.useClusterServers().addNodeAddress("redis://" + cluster6);
}
// .setPassword(password);
}
//使用 json 序列化方式
Codec codec = new JsonJacksonCodec();
conf.setCodec(codec);
redisson = Redisson.create(conf);
return redisson;
}
}