springboot 2.xバージョンRedis設定JedisConnectionFactory.setHostName()は古い
4075 ワード
一、今日新しいプロジェクトが以前の方法でredisを統合した時、JedisConnectionFactoryを発見した.sethostNameなどのメソッドプロンプトは古くなり、RedisCacheManagerの構成構成構成方法も変更され、エラーが表示されます.2.Xバージョンでは、RedisStandaloneConfiguration、RedisSentinelConfiguration、RedisClusterConfigurationの3つの方法で接続情報を構成できます.ここでは、RedisStandaloneConfigurationを例に、前の構成を変更します.
同じRedisCacheManagerの構成も、RedisTemplateをパラメータとして初期化することはできません.参考:公式ドキュメントは次のように変更します.
二、以上の構成では、redisを直接接続する方法を使用しています.すなわち、接続するたびに新しい接続が作成されます.コンカレント量が急増すると、パフォーマンスにオーバーヘッドが発生し、接続数が制限されていないため、サーバがクラッシュして応答できない可能性があります.そのため、私たちは一般的に接続プールを構築し、事前に接続のセットを初期化し、redis接続のスレッドを使用する必要があります.
接続プールの構成情報を定義します.
JedisConnectionFactoryを構成するには、最初のステップで構成したJedisConnectionFactoryに代わって、次の手順に従います.
@Bean
public JedisConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setHostName(host);
redisStandaloneConfiguration.setPort(port);
return new JedisConnectionFactory(redisStandaloneConfiguration);
}
同じRedisCacheManagerの構成も、RedisTemplateをパラメータとして初期化することはできません.参考:公式ドキュメントは次のように変更します.
@Bean
public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory){
return RedisCacheManager.create(connectionFactory);
}
二、以上の構成では、redisを直接接続する方法を使用しています.すなわち、接続するたびに新しい接続が作成されます.コンカレント量が急増すると、パフォーマンスにオーバーヘッドが発生し、接続数が制限されていないため、サーバがクラッシュして応答できない可能性があります.そのため、私たちは一般的に接続プールを構築し、事前に接続のセットを初期化し、redis接続のスレッドを使用する必要があります.
接続プールの構成情報を定義します.
/**
*
*/
@Bean
public JedisPoolConfig jedisPoolConfig(){
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//
jedisPoolConfig.setMaxTotal(100);
//
jedisPoolConfig.setMinIdle(20);
// ,
jedisPoolConfig.setMaxWaitMillis(10000);
//
return jedisPoolConfig;
}
JedisConnectionFactoryを構成するには、最初のステップで構成したJedisConnectionFactoryに代わって、次の手順に従います.
/**
* jedis
* @param jedisPoolConfig
* @return
*/
@Bean
public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig jedisPoolConfig) {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
// redis host ip
redisStandaloneConfiguration.setHostName(host);
redisStandaloneConfiguration.setPort(port);
//
// ,edisConnectionFactoryJ Standalone (RedisStandaloneConfiguration,JedisPoolConfig) ,
// JedisClientConfiguration builder ,
JedisClientConfiguration.JedisPoolingClientConfigurationBuilder jpcf = (JedisClientConfiguration.JedisPoolingClientConfigurationBuilder) JedisClientConfiguration.builder();
//
jpcf.poolConfig(jedisPoolConfig);
// jedis
JedisClientConfiguration jedisClientConfiguration = jpcf.build();
return new JedisConnectionFactory(redisStandaloneConfiguration, jedisClientConfiguration);
}