JedisCluster


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;
//    }
}