欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

探索jedis連接池預(yù)熱優(yōu)化高并發(fā)

 更新時間:2023年10月25日 09:55:06   作者:codecraft  
這篇文章主要為大家介紹了jedis連接池預(yù)熱優(yōu)化高并發(fā)深入探索示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

本文主要研究一下jedis連接池的預(yù)熱

預(yù)熱

@Component
@Slf4j
public class JedisWarmUp implements CommandLineRunner {
    @Autowired
    JedisConnectionFactory jedisConnectionFactory;
    @Override
    public void run(String... args) throws Exception {
        GenericObjectPoolConfig poolConfig = jedisConnectionFactory.getPoolConfig();
        if (poolConfig == null) {
            return ;
        }
        try {
            DirectFieldAccessor accessor = new DirectFieldAccessor(jedisConnectionFactory);
            JedisPool jedisPool = (JedisPool) accessor.getPropertyValue("pool");
            if (jedisPool == null) {
                log.info("jedisConnectionFactory.pool is null");
                return;
            }
            int warmUpSize = poolConfig.getMaxIdle();
            warmUp(jedisPool, warmUpSize);
        } catch (Exception e) {
            log.error("warmup jedisPool error:{}", e.getMessage());
        }
    }
    private void warmUp(JedisPool jedisPool, int warmUpSize) {
        List<Jedis> warmUpList = new ArrayList<>(warmUpSize);
        for (int i=0; i< warmUpSize; i++) {
            Jedis jedis = jedisPool.getResource();
            jedis.ping();
            warmUpList.add(jedis);
        }
        warmUpList.stream().forEach(jedis -> jedis.close());
    }
}
這里取了maxIdle配置來進(jìn)行預(yù)熱,通過DirectFieldAccessor來獲取jedisConnectionFactory對象的pool

小結(jié)

在高并發(fā)場景,通常需要對資源進(jìn)行預(yù)熱,比如數(shù)據(jù)庫連接池、redis連接池、線程池等等,可以避免首次請求慢的問題。這里通過先從連接池借一批連接,然后歸還一批連接來達(dá)到預(yù)熱的目的。

以上就是探索jedis連接池預(yù)熱優(yōu)化高并發(fā)的詳細(xì)內(nèi)容,更多關(guān)于jedis連接池預(yù)熱的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java的線程池ThreadPoolExecutor及多種線程池實現(xiàn)詳解

    Java的線程池ThreadPoolExecutor及多種線程池實現(xiàn)詳解

    這篇文章主要介紹了Java的線程池ThreadPoolExecutor及多種線程池實現(xiàn)詳解,ThreadPoolExecutor 使用 int 的高 3 位來表示線程池狀態(tài),低 29 位表示線程數(shù)量,之所以將信息存儲在一個變量中,是為了保證原子性,需要的朋友可以參考下
    2024-01-01
  • Java泛型實現(xiàn)類型安全的通用類型轉(zhuǎn)換器

    Java泛型實現(xiàn)類型安全的通用類型轉(zhuǎn)換器

    在開發(fā)中,我們常常需要在不同類型之間進(jìn)行轉(zhuǎn)換,為了提高代碼的可讀性與安全性,Java的泛型機(jī)制提供了強(qiáng)大的類型檢查能力,下面我們就來看看如何通過泛型實現(xiàn)類型安全的通用轉(zhuǎn)換器
    2024-11-11
  • Java中File類方法詳解以及實踐

    Java中File類方法詳解以及實踐

    Java File類的功能非常強(qiáng)大,利用java基本上可以對文件進(jìn)行所有操作,下面這篇文章主要給大家介紹了關(guān)于Java中File類方法以及實踐的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Java實現(xiàn)的3des加密解密工具類示例

    Java實現(xiàn)的3des加密解密工具類示例

    這篇文章主要介紹了Java實現(xiàn)的3des加密解密工具類,結(jié)合完整實例形式分析了3des加密解密的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • profiles.active多環(huán)境開發(fā)、測試、部署過程

    profiles.active多環(huán)境開發(fā)、測試、部署過程

    這篇文章主要介紹了profiles.active多環(huán)境開發(fā)、測試、部署,主要講如何使用profiles.active這個變量,讓我們在開發(fā)過程快速切換環(huán)境配置,以及如何使一個部署適配各種不同的環(huán)境,需要的朋友可以參考下
    2023-03-03
  • mybatis如何對大量數(shù)據(jù)的游標(biāo)查詢

    mybatis如何對大量數(shù)據(jù)的游標(biāo)查詢

    這篇文章主要介紹了mybatis如何對大量數(shù)據(jù)的游標(biāo)查詢問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Sa-Token不同模式實現(xiàn)單地登錄?多地登錄?同端互斥登錄

    Sa-Token不同模式實現(xiàn)單地登錄?多地登錄?同端互斥登錄

    這篇文章主要為大家介紹了Sa-Token不同模式實現(xiàn)單地登錄?多地登錄?同端互斥登錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Spring.Net控制反轉(zhuǎn)IoC入門使用

    Spring.Net控制反轉(zhuǎn)IoC入門使用

    這篇文章主要為大家詳細(xì)介紹了Spring.Net控制反轉(zhuǎn)IoC入門使用的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • SpringBoot+Redis實現(xiàn)布隆過濾器的示例代碼

    SpringBoot+Redis實現(xiàn)布隆過濾器的示例代碼

    本文主要介紹了SpringBoot+Redis實現(xiàn)布隆過濾器的示例代碼,文中根據(jù)實例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 如何在mapper文件中使用in("str1","str2")

    如何在mapper文件中使用in("str1","str2")

    這篇文章主要介紹了如何在mapper文件中使用in("str1","str2"),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論