最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot不同版本Redis設置JedisConnectionFactory詳解

 更新時間:2023年09月25日 10:39:03   作者:manongjc  
本文章向大家介紹Spring Boot不同版本Redis設置JedisConnectionFactory,主要內(nèi)容包括1.X 版本、2.X 版本、2.、基本概念、基礎應用、原理機制和需要注意的事項等,并結合實例形式分析了其使用技巧,希望通過本文能幫助到大家理解應用這部分內(nèi)容

Spring Boot不同版本Redis設置JedisConnectionFactory的方式

最近重構項目想引入Redis,之前1.0版本看項目里用的本地緩存Guava,這次重構后考慮要不要加入Redis。打算試試~

因為我以前做的項目用的Spring Boot版本比較低。還是老的 1.5.X版本的。 之前設置 JedisConnectionFactory 的方式與現(xiàn)在 2.X 版本有點不一樣,所以記錄一下,方便以后查看。

1.X 版本

設置 JedisConnectionFactory 方法:

    @Bean
    public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig jedisPoolConfig){
        String[] hostAndPorts = env.getProperty("spring.redis.cluster.nodes").split(",");
        JedisConnectionFactory jedisConnectionFactory = null;
        if(hostAndPorts.length==1){
            //單機版
            String host = hostAndPorts[0].split(":")[0];
            int port = Integer.valueOf(hostAndPorts[0].split(":")[1]);
            String password = env.getProperty("spring.redis.password");
            jedisConnectionFactory = new JedisConnectionFactory();
            jedisConnectionFactory.setPoolConfig(jedisPoolConfig);
            jedisConnectionFactory.setDatabase(1);
            jedisConnectionFactory.setHostName(host);
            jedisConnectionFactory.setPassword(password);
            jedisConnectionFactory.setPort(port);
            jedisConnectionFactory.setTimeout(5000);
            jedisConnectionFactory.afterPropertiesSet();
        }else{
            //集群版
            RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration();
            String password = env.getProperty("spring.redis.password");
            Set<RedisNode> nodes = new HashSet<RedisNode>();
            for (String ipPort:hostAndPorts){
                String[] ipAndPort = ipPort.split(":");
                nodes.add(new RedisNode(ipAndPort[0].trim(),Integer.valueOf(ipAndPort[1])));
            }
            redisClusterConfiguration.setClusterNodes(nodes);
            redisClusterConfiguration.setMaxRedirects(200);
            jedisConnectionFactory = new JedisConnectionFactory(redisClusterConfiguration,jedisPoolConfig);
            jedisConnectionFactory.setPassword(password);
            jedisConnectionFactory.afterPropertiesSet();
        }
        return jedisConnectionFactory;
    }

在 2.X 版本使用的話會提示方法已過期,推薦使用下面的方法。

2.X 版本

2.X 版本可以使用 RedisStandaloneConfiguration 來配置連接信息。

    @Bean
    public JedisConnectionFactory redisConnectionFactory() {
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName(env.getProperty("spring.redis.host"));
        redisStandaloneConfiguration.setPort(Integer.parseInt(env.getProperty("spring.redis.port")));
        redisStandaloneConfiguration.setPassword(env.getProperty("spring.redis.password"));
        redisStandaloneConfiguration.setDatabase(Integer.parseInt(env.getProperty("spring.redis.database")));
        return new JedisConnectionFactory(redisStandaloneConfiguration);
    }

以上配置使用的是直接連接 Redis 的方式,即每次連接都創(chuàng)建新的連接。當并發(fā)量劇增時,這會帶來性能上開銷,同時由于沒有對連接數(shù)進行限制,則可能使服務器崩潰導致無法響應。

所以一般情況下都會建立連接池,事先初始化一組連接,供需要 Redis 連接的線程取用。

    @Bean
    public JedisConnectionFactory redisConnectionFactory() {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(200);
        jedisPoolConfig.setMaxIdle(150);
        jedisPoolConfig.setMinIdle(50);
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName(env.getProperty("spring.redis.host"));
        redisStandaloneConfiguration.setPort(Integer.parseInt(env.getProperty("spring.redis.port")));
        redisStandaloneConfiguration.setPassword(env.getProperty("spring.redis.password"));
        redisStandaloneConfiguration.setDatabase(Integer.parseInt(env.getProperty("spring.redis.database")));
        JedisClientConfiguration.JedisClientConfigurationBuilder configurationBuilder = JedisClientConfiguration.builder();
        JedisClientConfiguration jedisClientConfiguration = configurationBuilder.usePooling().poolConfig(jedisPoolConfig).build();
        return new JedisConnectionFactory(redisStandaloneConfiguration, jedisClientConfiguration);
    }

以上就是Spring Boot不同版本Redis設置JedisConnectionFactory詳解的詳細內(nèi)容,更多關于Spring Boot Redis設置JedisConnectionFactory的資料請關注腳本之家其它相關文章!

相關文章

  • 從Spring遷移到Spring Boot的方法步驟

    從Spring遷移到Spring Boot的方法步驟

    這篇文章主要介紹了從Spring遷移到Spring Boot的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • IDEA中錯誤:java: java.lang.NoSuchFieldError的問題解決

    IDEA中錯誤:java: java.lang.NoSuchFieldError的問題解決

    本文主要介紹了IDEA中錯誤:java: java.lang.NoSuchFieldError的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-04-04
  • java集合中HashSet LinkedHashSet TreeSet三者異同面試精講

    java集合中HashSet LinkedHashSet TreeSet三者異同面試精講

    這篇文章主要為大家介紹了java集合中HashSet LinkedHashSet TreeSet三者異同面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Java遞歸來實現(xiàn)漢諾塔游戲,注釋詳細

    Java遞歸來實現(xiàn)漢諾塔游戲,注釋詳細

    這篇文章介紹了Java遞歸來實現(xiàn)漢諾塔游戲的方法,文中的代碼注釋介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • 詳細解讀spring中的@Resource注解

    詳細解讀spring中的@Resource注解

    這篇文章主要介紹了詳細解讀spring中的@Resource注解,此注解來源于JSR規(guī)范(Java?Specification?Requests),其作用是找到依賴的組件注入到應用來,它利用了JNDI技術查找所需的資源,需要的朋友可以參考下
    2023-10-10
  • SSH框架網(wǎng)上商城項目第2戰(zhàn)之基本增刪查改、Service和Action的抽取

    SSH框架網(wǎng)上商城項目第2戰(zhàn)之基本增刪查改、Service和Action的抽取

    SSH框架網(wǎng)上商城項目第2戰(zhàn)之基本增刪查改、Service和Action的抽取,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 基于Calendar獲取當前時間的性能比較

    基于Calendar獲取當前時間的性能比較

    這篇文章主要介紹了Calendar獲取當前時間的性能比較,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 解決DataOutputStream亂碼的問題

    解決DataOutputStream亂碼的問題

    這篇文章主要介紹了DataOutputStream亂碼問題的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java踩坑記錄之Arrays.AsList

    Java踩坑記錄之Arrays.AsList

    這篇文章主要給大家介紹了關于Java踩坑記錄之Arrays.AsList的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 關于idea中ssm框架的編碼問題分析

    關于idea中ssm框架的編碼問題分析

    在實際開發(fā)中需要將操作系統(tǒng)編碼、文件編碼、頁面編碼以及tomcat服務器編碼保持一致,而tomcat在默認情況下是使用UTF-8,這就使得其打印的日志文件出現(xiàn)中文亂碼,因此在一般情況下,只需要將tomcat服務器的編碼改為GBK即可
    2021-06-06

最新評論

沙河市| 习水县| 民县| 耒阳市| 云霄县| 滕州市| 黔西| 黎川县| 宜良县| 金秀| 广昌县| 衢州市| 当阳市| 玉山县| 灵璧县| 项城市| 三原县| 岚皋县| 临洮县| 乃东县| 厦门市| 定边县| 仙游县| 天长市| 都匀市| 德兴市| 临洮县| 邹城市| 钟山县| 曲阜市| 昌都县| 新闻| 阳信县| 阳春市| 乐山市| 罗城| 宜阳县| 北宁市| 潼关县| 奈曼旗| 汾阳市|