パラメータ名 | タイプ | デフォルト値 | 説明 | 推奨値 |
connectTimeout | int | 2000ms | 接続タイムアウト時間を設定します。 | 3000ms |
readTimeout | int | 2000ms | コマンドタイムアウト時間を設定します。 | 2000ms |
poolMinIdle | int | 無 | 接続プールの最小アイドル接続数 | 50 |
poolMaxIdle | int | 無 | 接続プールの最大アイドル接続数 | 200 |
poolMaxTotal | int | 無 | 接続プールの最大接続数 | 200 |
tencent.redis.host=XX.XX.XX.XXtencent.redis.port=6379tencent.redis.database=0tencent.redis.password=XXXXtencent.redis.connect.timeout=3000tencent.redis.read.timeout=2000tencent.redis.pool.minSize=50tencent.redis.pool.maxSize=200
tencent:redis:host: XX.XX.XX.XXport: 6379database: 0password: XXXXconnect:timeout: 3000read:timeout: 2000pool:minSize: 50maxSize: 200
<!-- spring-data-redisコンポーネントを導入します --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><!--spring boot 2.0以降はデフォルトでlettuceクライアントです。jedisを使用する場合はパッケージを除外する必要があります--><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions></dependency><!-- jedis依存パッケージを導入します --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>5.1.2</version></dependency>
import java.time.Duration;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.connection.RedisStandaloneConfiguration;import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;import redis.clients.jedis.JedisPoolConfig;@Configurationpublic class JedisConfig {@Value("${tencent.redis.host}")private String redisHost;@Value("${tencent.redis.port:6379}")private Integer redisPort = 6379;@Value("${tencent.redis.database:0}")private Integer redisDatabase = 0;@Value("${tencent.redis.password:}")private String redisPassword;@Value("${tencent.redis.connect.timeout:3000}")private Integer redisConnectTimeout = 3000;@Value("${tencent.redis.read.timeout:2000}")private Integer redisReadTimeout = 2000;@Value("${tencent.redis.pool.minSize:50}")private Integer redisPoolMinSize = 50;@Value("${tencent.redis.pool.maxSize:200}")private Integer redisPoolMaxSize = 200;@Beanpublic RedisConnectionFactory redisConnectionFactory(JedisClientConfiguration clientConfiguration) {RedisStandaloneConfiguration standaloneConfiguration = new RedisStandaloneConfiguration();standaloneConfiguration.setHostName(redisHost);standaloneConfiguration.setPort(redisPort);standaloneConfiguration.setDatabase(redisDatabase);standaloneConfiguration.setPassword(redisPassword);return new JedisConnectionFactory(standaloneConfiguration, clientConfiguration);}@Beanpublic JedisClientConfiguration clientConfiguration() {JedisClientConfiguration clientConfiguration = JedisClientConfiguration.builder().connectTimeout(Duration.ofMillis(redisConnectTimeout)).readTimeout(Duration.ofMillis(redisReadTimeout)).usePooling().poolConfig(redisPoolConfig()).build();return clientConfiguration;}private JedisPoolConfig redisPoolConfig() {JedisPoolConfig poolConfig = new JedisPoolConfig();//コネクションプールの最小接続数poolConfig.setMinIdle(redisPoolMinSize);//コネクションプールの最大アイドル接続数poolConfig.setMaxIdle(redisPoolMaxSize);//コネクションプールの最大接続数poolConfig.setMaxTotal(redisPoolMaxSize);//接続作成時に有効性を検証します(ping)。デフォルトはfalseです。poolConfig.setTestOnCreate(false);//接続取得時に有効性を検証します(ping)。デフォルトはfalseです。業務量が多い場合はオーバーヘッド削減のためfalseに設定することを推奨します。poolConfig.setTestOnBorrow(true);//接続返却時に有効性を検証します(ping)。デフォルトはfalseです。業務量が多い場合はオーバーヘッド削減のためfalseに設定することを推奨します。poolConfig.setTestOnReturn(false);//LIFOを無効にし、LIFO設定をFIFO(先入れ先出し)に変更して、接続確立の順序の公平性を確保します。poolConfig.setLifo(false);return poolConfig;}}
フィードバック