package com.joysuccess.dcim.cm.redis;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;
import java.util.HashSet;
/**
* @author guojinglong
* @date 2020年05月31日
*/
@Configuration
@EnableCaching
public class RedisConfig {
@Value("${spring.redis.maxIdle}")
private Integer maxIdle;
@Value("${spring.redis.timeout}")
private Integer timeout;
@Value("${spring.redis.maxActive}")
private Integer maxTotal;
@Value("${spring.redis.maxWaitMillis}")
private Integer maxWaitMillis;
@Value("${spring.redis.nodes}")
private String clusterNodes;
@Bean
public JedisCluster getJedisCluster(){
String[] cNodes = clusterNodes.split(",");
HashSet nodes = new HashSet<>();
//分割集群节点
for (String node : cNodes) {
String[] hp = node.split(":");
nodes.add(new HostAndPort(hp[0], Integer.parseInt(hp[1])));
}
JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
jedisPoolConfig.setMaxTotal(maxTotal);
//创建集群对象
JedisCluster jedisCluster = new JedisCluster(nodes, timeout, jedisPoolConfig);
return jedisCluster;
}
// @Bean
// public JedisConnectionFactory redisConnectionFactory() {
// RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
// redisStandaloneConfiguration.setHostName("192.168.235.10");
// redisStandaloneConfiguration.setPort(6379);
// redisStandaloneConfiguration.setDatabase(0);
//
//
// return new JedisConnectionFactory(redisStandaloneConfiguration);
// }
// @Bean
// public RedisTemplate redisTemplate(JedisConnectionFactory jedisConnectionFactory ) {
// log.info(jedisConnectionFactory.getHostName());
// // 配置redisTemplate
// RedisTemplate redisTemplate = new RedisTemplate();
// redisTemplate.setConnectionFactory(jedisConnectionFactory);
// RedisSerializer stringSerializer = new StringRedisSerializer();
// // key序列化
// redisTemplate.setKeySerializer(stringSerializer);
// // value序列化
// redisTemplate.setValueSerializer(stringSerializer);
// // Hash key序列化
// redisTemplate.setHashKeySerializer(stringSerializer);
// // Hash value序列化
// redisTemplate.setHashValueSerializer(stringSerializer);
// redisTemplate.afterPropertiesSet();
// return redisTemplate;
// }
}
########################################################
### Redis
########################################################
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
#spring.redis.host=40.193.217.1
## Redis服务器连接端口
#spring.redis.port=6379
# Redis服务器连接密码(默认为空)
#spring.redis.password=dcim
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.maxActive=600
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.maxWaitMillis=1000
# 连接池中的最大空闲连接
spring.redis.maxIdle=300
# 连接池中的最小空闲连接
spring.redis.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=10000
spring.redis.nodes=10.228.103.65:6379,10.228.103.66:6379,10.228.103.67:6379,10.228.103.65:6378,10.228.103.66:6378,10.228.103.67:6378
#spring.redis.nodes=192.168.235.10:6379,192.168.235.12:6379,192.168.235.14:6379,192.168.235.10:6378,192.168.235.12:6378,192.168.235.14:6378
########################################################
### Redis
########################################################
@Resource
JedisCluster jedisCluster;
//根据采集点 id 获取采集点的实时值
public String getPointValueByPointId(String assetId, String pointCode) {
List val = jedisCluster.hmget(assetId, pointCode);
return val.get(0);
}
redis.clients
jedis
2.9.1
package com.joysuccess.dcim.cm.redis;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisPassword;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;
import java.time.Duration;
import java.util.HashSet;
/**
* @author guojinglong
* @date 2020年05月31日
*/
@Configuration
@EnableCaching
public class RedisConfig {
@Value("${spring.redis.jedis.pool.max-idle}")
private String maxIdle;
@Value("${spring.redis.timeout}")
private Integer timeout;
@Value("${spring.redis.jedis.pool.max-wait}")
private Integer maxWaitMillis;
@Value("${spring.redis.port}")
private Integer port;
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.password}")
private String password;
// @Value("${spring.redis.nodes}")
// private String clusterNodes;
//
//
// @Bean
// public JedisCluster getJedisCluster(){
// String[] cNodes = clusterNodes.split(",");
// HashSet nodes = new HashSet<>();
// //分割集群节点
// for (String node : cNodes) {
// String[] hp = node.split(":");
// nodes.add(new HostAndPort(hp[0], Integer.parseInt(hp[1])));
// }
// JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
// jedisPoolConfig.setMaxIdle(maxIdle);
// jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
// jedisPoolConfig.setMaxTotal(maxTotal);
//
// //创建集群对象
// JedisCluster jedisCluster = new JedisCluster(nodes, timeout, jedisPoolConfig);
// return jedisCluster;
// }
@Bean
JedisConnectionFactory jedisConnectionFactory() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setHostName(host);
redisStandaloneConfiguration.setPort(port);
redisStandaloneConfiguration.setDatabase(0);
if (!password.equals("${spring.redis.password}")) {
redisStandaloneConfiguration.setPassword(RedisPassword.of(password));
}
JedisClientConfiguration.JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration.builder();
jedisClientConfiguration.connectTimeout(Duration.ofMillis(timeout));// connection timeout
JedisConnectionFactory factory = new JedisConnectionFactory(redisStandaloneConfiguration,
jedisClientConfiguration.build());
return factory;
}
// @Bean
// public JedisConnectionFactory redisConnectionFactory() {
// RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
// redisStandaloneConfiguration.setHostName(host);
// redisStandaloneConfiguration.setPort(port);
// redisStandaloneConfiguration.setDatabase(0);
// return new JedisConnectionFactory(redisStandaloneConfiguration);
// }
// @Bean
// public RedisTemplate redisTemplate(JedisConnectionFactory jedisConnectionFactory ) {
// log.info(jedisConnectionFactory.getHostName());
// // 配置redisTemplate
// RedisTemplate redisTemplate = new RedisTemplate();
// redisTemplate.setConnectionFactory(jedisConnectionFactory);
// RedisSerializer stringSerializer = new StringRedisSerializer();
// // key序列化
// redisTemplate.setKeySerializer(stringSerializer);
// // value序列化
// redisTemplate.setValueSerializer(stringSerializer);
// // Hash key序列化
// redisTemplate.setHashKeySerializer(stringSerializer);
// // Hash value序列化
// redisTemplate.setHashValueSerializer(stringSerializer);
// redisTemplate.afterPropertiesSet();
// return redisTemplate;
// }
}