亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        「Java框架」java真正的緩存之王,效率直接上來了

        「Java框架」java真正的緩存之王,效率直接上來了

        介紹語

        本號主要是Java常用關鍵技術點,通用工具類的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技術分享;datax、kafka、flink等大數(shù)據(jù)處理框架的技術分享。文章會不斷更新,歡迎碼友關注點贊收藏轉(zhuǎn)發(fā)!

        望各位碼友點擊關注,沖1000粉。后面會錄制一些視頻教程,圖文和視頻結(jié)合,比如:圖書介紹網(wǎng)站系統(tǒng)、搶購系統(tǒng)、大數(shù)據(jù)中臺系統(tǒng)等。技術才是程序猿的最愛,碼友們沖啊

        如果碼友覺得代碼太長,可以從頭到尾快速掃射一遍,了解大概即可。覺得有用后再轉(zhuǎn)發(fā)收藏,以備不時之需。

        正文:

        Caffeine Cache,它是站在巨人的肩膀上-Guava Cache,借著他的思想優(yōu)化了算法發(fā)展而來。當前最強本地緩存框架,不接受反駁( )”

        Caffeine Cache 的github地址:

        https://github.com/ben-manes/caffeine

        Caffeine 的底層算法很牛比,我自己也不清楚解釋不好,就不獻丑了,它有各種加載策略,回收策略,可以自動刷新緩存等,功能及其強大,我只會皮毛,下面直接來一個例子

        import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.LoadingCache; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; /** * @author java老牛 */ public class CaffineCache { public static void main(String[] args) { List javaList = new ArrayList(); javaList.add(new HashMap(3) {{ put(“java-ccc”, “abcd”); put(“java-aaa”, “求三聯(lián)”); put(“java-bbb”, 123); }}); CaffineCache.putListByClassify(“java”, javaList); List netList = new ArrayList(); netList.add(new HashMap(3) {{ put(“net-ccc”, “abcd”); put(“net-aaa”, “求三聯(lián)”); put(“net-bbb”, 123); }}); CaffineCache.putListByClassify(“net”, netList); List phpList = new ArrayList(); phpList.add(new HashMap(3) {{ put(“php-ccc”, “abcd”); put(“php-aaa”, “求三聯(lián)”); put(“php-bbb”, 123); }}); CaffineCache.putListByClassify(“php”, phpList); System.out.println(“net list:”); System.out.println(CaffineCache.getListByClassify(“net”)); System.out.println(“java List”); System.out.println(refreshCache.get(“java”)); } // 手動創(chuàng)建緩存 private static final Cache<String, List> ARTICLE_LIST_CACHE = Caffeine.newBuilder() // 12小時緩存過期 .expireAfterWrite(12, TimeUnit.HOURS) // 最大緩存?zhèn)€數(shù) .maximumSize(1000) .build(); // 取緩存 public static List getListByClassify(String key) { return ARTICLE_LIST_CACHE.getIfPresent(key); } // 存緩存 public static void putListByClassify(String key, List value) { ARTICLE_LIST_CACHE.put(key, value); } private static final LoadingCache<String, List> refreshCache = Caffeine.newBuilder() // 最大緩存數(shù) .maximumSize(10_000) // 每分鐘刷新一次 .refreshAfterWrite(1, TimeUnit.MINUTES) .build(CaffineCache::loadCache); private static List loadCache(String key) { // 這里自動加載數(shù)據(jù)庫數(shù)據(jù)到緩存,我這里直接寫死咯 List javaList = new ArrayList(); javaList.add(new HashMap(3) {{ put(“java-ccc”, “abcd”); put(“java-aaa”, “求三聯(lián)”); put(“java-bbb”, 123); }}); return javaList; } }

        結(jié)果打印

        maven依賴包:

        com.github.ben-manes.caffeine caffeine 2.6.2

        鄙人編碼十年多,在項目中也積累了一些工具類,很多工具類在每個項目都有在用,很實用。大部分是鄙人封裝的,有些工具類是同事封裝的,有些工具類已經(jīng)不記得是ctrl+c的還是自己封裝的了,現(xiàn)在有空就會總結(jié)項目中大部分的工具類,分享給各位碼友。如果文章中涉及的代碼有侵權(quán)行為請通知鄙人處理。

        計劃是先把工具類整理出來,正所謂工欲善其事,必先利其器。項目中不管是普通單體項目還是多模塊maven項目或是分布式微服務,一部分功能模塊都是可以重用的,工具類模塊就是其中之一。

        鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年7月21日 22:13
        下一篇 2022年7月21日 22:13

        相關推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時間:周一至周五,10:30-18:30,節(jié)假日休息