多級緩存之二:本地緩存Guava

接上一篇Redis集中式緩存應用暴备,作為緩存的數據庫中間件redis的集中式緩存管理。下面使用Guava進行熱點數據本地緩存缩赛。
Guava cache本地緩存

  1. 可控制的大小和超時時間
  2. 可配置的LRU策略
  3. 線程安全

Guava

  • 配置

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>18.0</version>
        </dependency>
  • 封裝本地緩存操作類

CacheService.java

public interface CacheService {
    //存方法
    void setCommonCache(String key,Object value);

    //取方法
    Object getFromCommonCache(String key);
}

CacheServiceImpl.java

@Service
public class CacheServiceImpl implements CacheService {

    private Cache<String,Object> commonCache = null;

    @PostConstruct
    public void init(){
        commonCache = CacheBuilder.newBuilder()
                //設置緩存容器的初始容量為10
                .initialCapacity(10)
                //設置緩存中最大可存儲100個key,超過100個之后會按照LRU的策略移除緩存項
                .maximumSize(100)
                //設置寫緩存后多少秒過期
                .expireAfterWrite(60, TimeUnit.SECONDS).build();
    }
    @Override
    public void setCommonCache(String key, Object value) {
        commonCache.put(key, value);
    }

    @Override
    public Object getFromCommonCache(String key) {
        return commonCache.getIfPresent(key);
    }
}

  • 使用redis+Guava

先查本地緩存,本地緩存沒有再從redis中查找乖订,redis中也沒有再從MySQL中讀取數據,同時把數據填充到reids和本地緩存具练。

        ItemModel itemModel = null;
        //先去本地緩存
        itemModel = (ItemModel) cacheService.getFromCommonCache("item_"+id);
        if(itemModel == null){
            //根據商品的id到redis內獲取
            itemModel = (ItemModel) redisTemplate.opsForValue().get("item_"+id);
            //若redis內不存在對應的itemModel,則訪問下游service
            if (itemModel == null){
                itemModel = itemService.getItemById(id);
                //設置itemModel到redis內
                redisTemplate.opsForValue().set("item_"+id,itemModel);
                redisTemplate.expire("item_"+id,10, TimeUnit.MINUTES);
            }
            //填充本地緩存
            cacheService.setCommonCache("item_"+id,itemModel);
        }

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末乍构,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子扛点,更是在濱河造成了極大的恐慌哥遮,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件占键,死亡現場離奇詭異昔善,居然都是意外死亡,警方通過查閱死者的電腦和手機畔乙,發(fā)現死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門君仆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事返咱≡勘樱” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵咖摹,是天一觀的道長评姨。 經常有香客問我,道長萤晴,這世上最難降的妖魔是什么吐句? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮店读,結果婚禮上嗦枢,老公的妹妹穿的比我還像新娘。我一直安慰自己屯断,他們只是感情好文虏,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著殖演,像睡著了一般氧秘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上趴久,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天丸相,我揣著相機與錄音,去河邊找鬼朋鞍。 笑死已添,一個胖子當著我的面吹牛,可吹牛的內容都是我干的滥酥。 我是一名探鬼主播更舞,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坎吻!你這毒婦竟也來了缆蝉?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤瘦真,失蹤者是張志新(化名)和其女友劉穎刊头,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體诸尽,經...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡原杂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了您机。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穿肄。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡年局,死狀恐怖,靈堂內的尸體忽然破棺而出咸产,到底是詐尸還是另有隱情矢否,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布脑溢,位于F島的核電站僵朗,受9級特大地震影響,放射性物質發(fā)生泄漏屑彻。R本人自食惡果不足惜验庙,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望社牲。 院中可真熱鬧壶谒,春花似錦、人聲如沸膳沽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挑社。三九已至,卻和暖如春巡揍,著一層夾襖步出監(jiān)牢的瞬間痛阻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工腮敌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留阱当,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓糜工,卻偏偏與公主長得像弊添,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子捌木,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內容

  • 一油坝、簡介 Ehcache是一個用Java實現的使用簡單,高速刨裆,實現線程安全的緩存管理類庫澈圈,ehcache提供了用內...
    小程故事多閱讀 43,823評論 9 59
  • 原文 使用Guava cache構建本地緩存 - sameLuo的個人空間 - OSCHINA Guava Cac...
    OoLukeoO閱讀 6,624評論 0 3
  • 如何閱讀哲學書 要點 1.根據亞里士多德的說法,哲學來自懷疑帆啃。 2.能夠保留孩子看世界的眼光瞬女,有能成熟地了解到保留...
    落花的季節(jié)閱讀 794評論 0 0
  • 現在的社會是個信仰缺失、盲目跟風努潘、大眾浮躁的社會诽偷,說其病態(tài)也不為過坤学。如何在迷茫中保持清醒、擺脫迷茫渤刃,《活法》給了我...
    吳佳妮_ab17閱讀 309評論 0 0
  • 一邊冰川覆蓋拥峦,一邊稀草慌慌,萬里晴空的晨光之下卖子,瑪沁的天地顯得格外美景略号,藍藍的天空之下,雖看不到成群結隊的牛羊洋闽,但...
    多果加閱讀 177評論 1 2