簡體   English   中英

Spring 數據 Redis 集群生菜連接設置

[英]Spring data Redis Cluster Lettuce Connection Settings

我們將 spring 數據 redis 與生菜一起使用,生菜使用單連接,但在 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;
        }
    
    }

由於我們使用 Spring 數據 redis 1.8.23 和 Lettuce 4.5.0.final,我們不能使用 LettucePoolingClientConfiguration。
為 AWS Elastic Cache 使用 DefaultLettucePool 是否是好的選擇,使用 setShareNativeConnection 設置為 false 的缺點是什么。

擁有連接池的任何其他更好的選擇。

將 DefaultLettucePool 用於 AWS Elastic Cache 是否是一個不錯的選擇

從功能的角度來看,它工作得很好,唯一的問題是它已被棄用,因此使用它會產生技術債務。

使用 setShareNativeConnection 設置為 false 的缺點是什么

它將增加應用程序的網絡 I/O,因為每個操作都會打開和關閉一個套接字。 將其保持為 true 可確保多個 LettuceConnection 對象可以重用本機連接。

作為替代方案,嘗試使用Jedis作為您的引擎,而不是 Lettuce。 使用這個庫我有一些很棒的表現,它也支持連接池。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM