Memcached 作用與使用 基本介紹

1,對于緩存的存取方式,簡言之,就是以鍵值對的形式將數(shù)據(jù)保存在內(nèi)存中。在日常業(yè)務(wù)中涉及的操作無非就是增刪改查。加入緩存機(jī)制后,查詢的時(shí)候,對數(shù)據(jù)進(jìn)行緩存,增刪改的時(shí)候,清除緩存即可。這其中對于緩存的閉合就非常重要,如果緩存沒有及時(shí)得到更新,那用戶就會獲取到過期數(shù)據(jù),就會產(chǎn)生問題。

2,對于單一業(yè)務(wù)的緩存管理(數(shù)據(jù)庫中只操作單表),只需生成一個(gè)key,查詢時(shí),使用key,置入緩存;增刪改時(shí),使用key,清除緩存。將key與表綁定,操作相對簡單。

3,但是在現(xiàn)實(shí)業(yè)務(wù)中,更多的是對關(guān)聯(lián)表的增刪改查(數(shù)據(jù)庫多表操作),業(yè)務(wù)之間互相關(guān)聯(lián),數(shù)據(jù)庫中的某張表不止一個(gè)業(yè)務(wù)再進(jìn)行操作,將緩存攔截在service層,對業(yè)務(wù)進(jìn)行緩存,對多表進(jìn)行緩存。

4,業(yè)務(wù)層緩存實(shí)現(xiàn)策略:

  4.1,在緩存中建立一個(gè)key為"union_query",value為“hashmap<prefix,uqversion>(‘簡稱uqmap’)“的緩存,prefix保存的是當(dāng)前業(yè)務(wù)操作涉及到的數(shù)據(jù)庫表名的組合(數(shù)據(jù)庫表名的唯一性),使用‘|’分隔(例 prefix=“A|B”,此次業(yè)務(wù)將操作A表與B表),uqversion是業(yè)務(wù)版本號,從0開始遞增。

  4.2,調(diào)用一個(gè)查詢業(yè)務(wù)時(shí),對數(shù)據(jù)進(jìn)行緩存,設(shè)置operation為1,告訴cache對象,這是一個(gè)緩存操作,例如調(diào)用 queryAB(args[])方法時(shí),cache對象切入,將prefix(即”A|B“)與uqversion(初始化為0),存入uqmap中進(jìn)行緩存。

  4.3,將prefix,uqversion,方法明+參數(shù),進(jìn)行拼接,使用md5進(jìn)行加密后作為一個(gè)key,將方法的結(jié)果集作為value,進(jìn)行緩存。至此緩存成功。

  4.4,當(dāng)?shù)诙€(gè)請求來調(diào)用queryAB時(shí),cache對象切入,首先,查詢uqmap對象,使用prefix找到對應(yīng)的uqversion,然后,通過拼接加密獲取key,最后取得結(jié)果集進(jìn)行返回。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式