不推荐使用JedisConnectionFactory setHostName

时间:2018-02-28 04:28:06

标签: redis spring-data jedis

这是我第一次将Spring连接到Redis。 jedis连接工厂的文档:http://www.baeldung.com/spring-data-redis-tutorial

提供以下代码:

@Bean
JedisConnectionFactory jedisConnectionFactory() {
    JedisConnectionFactory jedisConFactory
            = new JedisConnectionFactory();

    jedisConFactory.setHostName("localhost");
    jedisConFactory.setPort(6379);
    return jedisConFactory;
}

看起来很棒,但我的IDE告诉我setHostName和setPort方法已被弃用(即使我使用了教程中的版本)。

我想知道是否有人将简单的弹簧数据连接到redis"使用未弃用的API调用的示例?

3 个答案:

答案 0 :(得分:23)

使用Spring Data Redis 2.0时,这些方法已被弃用。 您现在需要使用RedisStandaloneConfiguration配置

参考:https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/connection/jedis/JedisConnectionFactory.html#setHostName-java.lang.String-

示例:

JedisConnectionFactory jedisConnectionFactory() {
    RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration("localhost", 6379);
    redisStandaloneConfiguration.setPassword(RedisPassword.of("yourRedisPasswordIfAny"));
    return new JedisConnectionFactory(redisStandaloneConfiguration);
}

答案 1 :(得分:12)

@Bean
    JedisConnectionFactory jedisConnectionFactory() {

        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName("localhost");
        redisStandaloneConfiguration.setPort(6379);
        redisStandaloneConfiguration.setDatabase(0);
        redisStandaloneConfiguration.setPassword(RedisPassword.of("password"));

        JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration.builder();
        jedisClientConfiguration.connectTimeout(Duration.ofSeconds(60));// 60s connection timeout

        JedisConnectionFactory jedisConFactory = new JedisConnectionFactory(redisStandaloneConfiguration,
                jedisClientConfiguration.build());

        return jedisConFactory;
    }

答案 2 :(得分:0)

除了@Thang Le的回复

您可以配置读取操作超时,并添加以下行:

  

jedisClientConfigurationBuilder.readTimeout(Duration.ofSeconds(1));

这是使用时可获得的值:

  

jedisConFactory.getTimeout()