You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中Redis配置类客户端连接数设置及生效问题排查

问题:Redis连接池配置不生效及Java与Redis连接获取方法

我将maxConnection设置为0,原本预期向Redis写入数据时会报错,但程序仍正常运行。通过RedisInsight查看客户端连接数,显示为8、9、11等数值,并非设置的0。

相关代码片段如下:

@Bean
public JedisConnectionFactory connectionFactory() {

    RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();
    configuration.setHostName(hostname);
    configuration.setDatabase(database);
    configuration.setPort(port);
    configuration.setPassword(password);
    
    getJedisClientConfiguration();
    JedisClientConfiguration.JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration.builder();
    jedisClientConfiguration.usePooling();
    return new JedisConnectionFactory(configuration, jedisClientConfiguration.build());

}

@Bean 
public JedisClientConfiguration getJedisClientConfiguration() {
    JedisClientConfiguration.JedisClientConfigurationBuilder builder = (JedisClientConfiguration.JedisClientConfigurationBuilder) JedisClientConfiguration .builder();

    GenericObjectPoolConfig genericObjectPoolConfig = new GenericObjectPoolConfig();
    genericObjectPoolConfig.setMaxTotal(maxConnection);
    //GenericObjectPoolConfig.setMaxIdle(maxConnectionIdle);
    //GenericObjectPoolConfig.setMinIdle(minConnectionIdle); 
    JedisClientConfiguration clientConfiguration = builder.usePooling().poolConfig(genericObjectPoolConfig).build();
    System.out.println(genericObjectPoolConfig.getMaxTotal());
    return clientConfiguration; 
}

请问如何正确获取Java与Redis的连接?

解决方法

该问题已通过调整连接池配置的绑定逻辑解决,核心修复点:

  • 构建JedisConnectionFactory时,直接使用getJedisClientConfiguration()返回的配置对象,而非重新创建空的配置构建器,确保自定义的连接池参数(如maxTotal)被正确应用。
  • 修正后的代码会将配置好的JedisClientConfiguration实例传入JedisConnectionFactory构造方法,保证连接池的参数设置生效,避免出现配置不生效的情况。

内容的提问来源于stack exchange,提问作者Ayshe Ayparcasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:02:17