web-dev-qa-db-fra.com

JedisConnectionFactory setHostName est obsolète

Ce sera ma première connexion de Spring à Redis. La documentation de jedis connection factory: http://www.baeldung.com/spring-data-redis-tutorial

Offre le code suivant:

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

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

Ça a l'air bien, mais mon IDE me dit que les méthodes setHostName et setPort sont obsolètes (même si j'utilise les versions du tutoriel).

Je me demandais si quelqu'un avait un simple exemple de "connexion des données de printemps à redis" qui utilise les appels d'API non obsolètes?

18
Michael Draper

Avec Spring Data Redis 2.0, ces méthodes sont obsolètes. Vous devez maintenant configurer à l'aide de RedisStandaloneConfiguration

Référence: https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/connection/jedis/JedisConnectionFactory.html#setHostName-Java.lang. Chaîne -

Exemple:

JedisConnectionFactory jedisConnectionFactory() {
    RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration("localhost", 6379);
    redisStandaloneConfiguration.setPassword(RedisPassword.of("yourRedisPasswordIfAny"));
    return new JedisConnectionFactory(redisStandaloneConfiguration);
}
32
Tehnaz
@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;
    }
15
Thang Le

En plus de la réponse de @Thang Le

Vous pouvez configurer votre temps hors des opérations de lecture, en ajoutant cette ligne:

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

C'est la valeur que vous pouvez obtenir lors de l'utilisation:

jedisConFactory.getTimeout ()

0
Jhon Mario Lotero