【发布时间】:2020-05-09 17:35:30
【问题描述】:
我有以下代码 sn-p 用于获取 RedisTemplate。
@Bean
public JedisConnectionFactory getJedisConnectionFactory() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setHostName(host);
if (!StringUtils.isEmpty(password)) {
redisStandaloneConfiguration.setPassword(RedisPassword.of(password));
}
redisStandaloneConfiguration.setPort(port);
return new JedisConnectionFactory(redisStandaloneConfiguration, getJedisClientConfiguration());
}
@Bean
public RedisTemplate redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
redisTemplate.setConnectionFactory(getJedisConnectionFactory());
redisTemplate.setKeySerializer(new StringRedisSerializer());
return redisTemplate;
}
我的问题是 sprint-boot 如何理解连接池,因为我没有在我的工厂提供任何关于连接池的信息。我的应用程序属性文件具有以下属性。
redis.host=<redis-host>
redis.port=<port>
redis.password=<password>
redi.jedis.pool.max.total=16
redi.jedis.pool.max.idle=8
redi.jedis.pool.min.idle=4
【问题讨论】:
-
您能否也分享一下这个
getJedisClientConfiguration()的详细信息。 -
@Bean public JedisClientConfiguration getJedisClientConfiguration() { JedisClientConfiguration.JedisClientConfigurationBuilder builder = (JedisClientConfiguration.JedisClientConfigurationBuilder) JedisClientConfiguration .builder(); GenericObjectPoolConfig GenericObjectPoolConfig = new GenericObjectPoolConfig(); GenericObjectPoolConfig.setMaxTotal(maxConnection); GenericObjectPoolConfig.setMaxIdle(maxConnectionIdle); GenericObjectPoolConfig.setMinIdle(minConnectionIdle); return builder.usePooling().poolConfig(GenericObjectPoolConfig).build(); }
-
如果没有指定池化值,默认设置什么值?
标签: java spring spring-boot spring-data-redis