<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

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

      介紹語

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

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

      如果碼友覺得代碼太長,可以從頭到尾快速掃射一遍,了解大概即可。覺得有用后再轉(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<Map<String, Object>> javaList = new ArrayList<>();
               javaList.add(new HashMap<String, Object>(3) {{
                   put("java-ccc", "abcd");
                   put("java-aaa", "求三聯(lián)");
                   put("java-bbb", 123);
               }});
               CaffineCache.putListByClassify("java", javaList);
       ?
               List<Map<String, Object>> netList = new ArrayList<>();
               netList.add(new HashMap<String, Object>(3) {{
                   put("net-ccc", "abcd");
                   put("net-aaa", "求三聯(lián)");
                   put("net-bbb", 123);
               }});
               CaffineCache.putListByClassify("net", netList);
       ?
               List<Map<String, Object>> phpList = new ArrayList<>();
               phpList.add(new HashMap<String, Object>(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<Map<String, Object>>> ARTICLE_LIST_CACHE = Caffeine.newBuilder()
               // 12小時緩存過期
               .expireAfterWrite(12, TimeUnit.HOURS)
               // 最大緩存?zhèn)€數(shù)
               .maximumSize(1000)
               .build();
       ?
           // 取緩存
           public static List<Map<String, Object>> getListByClassify(String key) {
               return ARTICLE_LIST_CACHE.getIfPresent(key);
           }
       ?
           // 存緩存
           public static void putListByClassify(String key, List<Map<String, Object>> value) {
               ARTICLE_LIST_CACHE.put(key, value);
           }
       ?
           private static final LoadingCache<String, List<Map<String, Object>>> refreshCache = Caffeine.newBuilder()
               // 最大緩存數(shù)
               .maximumSize(10_000)
               // 每分鐘刷新一次
               .refreshAfterWrite(1, TimeUnit.MINUTES)
               .build(CaffineCache::loadCache);
       ?
           private static List<Map<String, Object>> loadCache(String key) {
               // 這里自動加載數(shù)據(jù)庫數(shù)據(jù)到緩存,我這里直接寫死咯
               List<Map<String, Object>> javaList = new ArrayList<>();
               javaList.add(new HashMap<String, Object>(3) {{
                   put("java-ccc", "abcd");
                   put("java-aaa", "求三聯(lián)");
                   put("java-bbb", 123);
               }});
               return javaList;
           }
       ?
       }

      結(jié)果打印

       

      maven依賴包:

       <dependency>
           <groupId>com.github.ben-manes.caffeine</groupId>
           <artifactId>caffeine</artifactId>
           <version>2.6.2</version>
       </dependency>

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

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

      posted @ 2022-08-06 23:53  Java夜未眠  閱讀(92)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 卫辉市| 青草99在线免费观看| 成人动漫综合网| 国产精品福利自产拍久久| 国产午夜三级一区二区三| 国产成人a在线观看视频| 久久亚洲精品成人综合网| 久久99九九精品久久久久蜜桃| 欧美丰满熟妇xxxx性ppx人交| 国产色一区二区三区四区| 国产精品XXXX国产喷水| 插入中文字幕在线一区二区三区| 精品国产一区二区三区麻豆| 九九久久人妻一区精品色| 亚洲熟妇在线视频观看| 中文字幕人妻丝袜美腿乱| 老熟女高潮一区二区三区| 精品偷拍一区二区三区在| 欧美熟妇乱子伦XX视频| 99久久免费只有精品国产| 91久久亚洲综合精品成人| 日韩少妇内射免费播放| 久久精品亚洲精品国产色婷| 国产午夜福利在线视频| 思思热在线视频精品| 日韩人妻少妇一区二区三区| 亚洲色拍拍噜噜噜最新网站| 国产乱码精品一区二区三区中文 | 人妻中文字幕av资源站| 亚洲精品成人A在线观看| 中文字幕无码av不卡一区| 无码国产偷倩在线播放老年人| 内射老阿姨1区2区3区4区| 无码av免费毛片一区二区| 乐平市| 久久久久久无码午夜精品直播| 亚洲熟妇色xxxxx欧美老妇| 日韩精品中文女同在线播放| 秋霞在线观看秋| 亚洲色成人网站www永久四虎| 免费午夜无码片在线观看影院 |