spring数据redis集群连接设置

bqf10yzr  于 2021-06-10  发布在  Redis
关注(0)|答案(1)|浏览(648)

我们将SpringDataRedis与莴苣一起使用,莴苣使用单个连接,但在web应用程序中,根据我的假设,使用连接池更好。下面是java配置的代码

@Configuration
    @ComponentScan(basePackages = { "com.test.*" })
    public class AppConfig {

        @Bean
        public LettuceConnectionFactory getLettuceConnectionFactory() {
              List<String> clusterNodes = Arrays.asList("redis-cluster----0001-001.redis-cluster---.usw2.cache.amazonaws.com:6379", "redis-cluster----0001-002.redis-cluster---.usw2.cache.amazonaws.com:6379");
              final LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(new RedisClusterConfiguration(clusterNodes));
              lettuceConnectionFactory.setTimeout(10000);
              lettuceConnectionFactory.setUseSsl(true);
              lettuceConnectionFactory.setVerifyPeer(false);
              lettuceConnectionFactory.setStartTls(false);
              lettuceConnectionFactory.afterPropertiesSet();
              return lettuceConnectionFactory;
        }

        @Bean
        public RedisTemplate<String, Object> redisTemplate() {
              final RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
              redisTemplate.setKeySerializer(new StringRedisSerializer());                                           
              redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
              redisTemplate.setConnectionFactory(getLettuceConnectionFactory());
              return redisTemplate;
        }

    }

因为我们使用的是SpringDataRedis1.8.23和莴苣4.5.0.final,所以不能使用lettucepoolingclientconfiguration。
使用defaultlettucepool for aws elastic cache是否很好,使用setsharenativeconnection设置为false的缺点是什么。
任何其他更好的连接池选择。

nhaq1z21

nhaq1z211#

使用defaultlettucepool for aws弹性缓存是一个好的选择吗
从功能的Angular 来看,它工作得很好,唯一的问题是它已经被弃用,因此,使用它会产生技术债务。
使用setsharenativeconnection设置为false的缺点是什么
它会增加应用程序的网络i/o,因为每次操作都会打开和关闭一个套接字。保持为true可以确保多个lettuceconnection对象可以重用本机连接。
另一种选择是,试着用绝地作为你的引擎,而不是生菜。我在使用这个库时表现很好,它也支持连接池。

相关问题