web-dev-qa-db-ja.com

JedisConnectionFactory setHostNameは非推奨です

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メソッドが非推奨になったことを教えてくれます(チュートリアルのバージョンを使用している場合でも)。

非推奨のAPI呼び出しを使用する簡単な「redisに接続されたスプリングデータを取得する」例があるかどうか疑問に思いましたか?

18
Michael Draper

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。文字列-

例:

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

@Thang Leによる応答に加えて

次の行を追加して、読み取り操作のタイムアウトを設定できます。

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

これは、使用時に取得できる値です。

jedisConFactory.getTimeout()

0