Spring Data Redis - Lettuce 连接池设置

问题描述 投票:0回答:1

尝试在 Spring Data Redis 环境中设置 Lettuce 连接池。
下面是代码

    @Bean
     LettuceConnectionFactory redisConnectionFactory(GenericObjectPoolConfig genericObjectPoolConfig) {


        RedisStandaloneConfiguration redisConfiguration = new RedisStandaloneConfiguration();
        redisConfiguration.setHostName(hostName);
        redisConfiguration.setPort(port);
        redisConfiguration.setPassword(password);
        redisConfiguration.setDatabase(databaseIndex);
        LettuceClientConfiguration lettuceClientConfiguration= LettucePoolingClientConfiguration.builder().poolConfig(genericObjectPoolConfig).build();
        return new LettuceConnectionFactory(redisConfiguration,lettuceClientConfiguration);
    }

@Bean
    public GenericObjectPoolConfig genericObjectPoolConfig(){
        GenericObjectPoolConfig genericObjectPoolConfig=new GenericObjectPoolConfig();
        genericObjectPoolConfig.setMaxTotal(100);
        return genericObjectPoolConfig;
    }

当我检查执行时,它没有考虑连接池以及每次建立连接时。 有这方面的指点吗?

redis spring-data-redis lettuce
1个回答
0
投票

来自LettuceConnectionFactory的评论:

该工厂在每次调用 getConnection() 时都会创建一个新的 LettuceConnection。默认情况下,多个 LettuceConnections 共享一个线程安全的本机连接。

另参考另一个问题:使用spring-data-redis配置了Redis连接池但无法正常工作

我们可以说,如果您的应用程序仅连接到一台 Redis 服务器/集群,您希望保留默认值。否则,例如,特别是当您开发多租户应用程序时,您可以将 shareNativeConnection 设置为 false 并使用池(将 minIdle 设置为 0 并将 minEvictableIdleDuration 设置为适当的值)。

© www.soinside.com 2019 - 2024. All rights reserved.