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に接続されたスプリングデータを取得する」例があるかどうか疑問に思いましたか?
Spring Data Redis 2.0では、これらのメソッドは廃止されました。 RedisStandaloneConfigurationを使用して構成する必要があります
例:
JedisConnectionFactory jedisConnectionFactory() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration("localhost", 6379);
redisStandaloneConfiguration.setPassword(RedisPassword.of("yourRedisPasswordIfAny"));
return new JedisConnectionFactory(redisStandaloneConfiguration);
}
@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;
}
@Thang Leによる応答に加えて
次の行を追加して、読み取り操作のタイムアウトを設定できます。
jedisClientConfigurationBuilder.readTimeout(Duration.ofSeconds(1));
これは、使用時に取得できる値です。
jedisConFactory.getTimeout()