框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用

框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用

凱哥Java 凱哥java
1:什麼是分佈式?分佈式與集羣的區別。
2:ehcache與mybatis的整合
3:mybatis二級緩存應用場景&侷限性
4:總結&下節預告
本文是《凱哥陪你學系列-框架學習之mybatis框架學習》中第二十三篇 mybatis整合ehcache緩存使用
聲明:本文系凱哥Java(www.kaigejava.com)原創,未經容許,禁止轉載!
將mybatis和ehcache緩存整合以前,咱們先來了解下分佈式。java

一:什麼是分佈式?

框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用
從俠義方面來說,分佈式是指多臺PC在地理位置上分佈在不一樣的地方,共同來完成同一個東西。
好比,在大型餐廳,想要吃一份菜先有洗菜工,把須要的菜洗好,再有切菜工、配菜工配好以後,最後再有大廚掌勺進行烹飪會,最後將菜餚上到餐桌上。(從物理位置上來講,洗菜工、切菜工、配菜工和大廚也在不一樣的物理位置)
這裏,將洗菜、切菜、配菜和烹飪進行切分了。從效率上來講,大大提升了出菜的速度。從成本上來講,也不是很高(若是洗菜、切菜、配菜都讓大廚一個來作的話,須要不少大廚。而每每一個大廚的工資會比好幾個洗菜工+切菜工工資都高的)。
因此,能夠理解,在分佈式各個節點中,可使用普通的PC機均可以的。
1.2:分佈式與集羣的區別。
在瞭解了分佈式後,這裏須要與集羣進行區分。由於不少時候容易把集羣和分佈式弄混淆。
分佈式:
多個節點完成同一個任務。能夠理解爲中央集權制。層層拆分後,最總將處理的結果反饋給一箇中心。
缺點就是,若是中間某個環節出了問題,也許會致使整個鏈出問題(若是沒有負載均衡之類處理的話),有可能致使整個系統崩潰。
分佈式分任務處理高併發的。
集羣:
同一套系統,放在不一樣的機器上運行。好比在窗口買票,每一個窗口均可以單獨的完成購票整個流程。
集羣使得系統有高擴展性和高可用性
好了,很少說這些了。有時間或者有須要的朋友,留言下。後續能夠單獨開篇來說分佈式、負載均衡、集羣這些。在這裏就很少說了。
下面來看流程圖:
框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用
1.3:什麼是ehcache
框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用
一句話:ehcache就是一個分佈式的緩存框架緩存

二:ehcache與mybatis的整合

1.1:mybatis與ehcache整合思路
cache是一個接口。默認實現的是mybatis的PerpetualCache.若是想要整合mybatis的二級緩存,那麼須要實現cache接口便可。
cache接口以下:
框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用
1.2:添加須要的jar包
框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用
1.3:在映射文件中cache標籤的type值爲ehcache的實現類。以下圖:
框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用
1.4:添加ehcache的配置文件
在config下,建立ehcache.xml文件
框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用
1.5:測試ehcache的二級緩存
框架學習系列 mybatis 第二十三篇 mybatis整合ehcache緩存使用mybatis

三:mybatis二級緩存應用場景&侷限性

3.1:mybatis二級緩存應用場景
對弈訪問響應速度要求高、可是實時性不高的查詢,可使用二級緩存技術。(好比,網站首頁banner廣告、或者是網站導航信息)
注意:在使用二級緩存的時候,要設置一下刷新時間間隔(cache標籤中有一個flashInterval屬性)來定時刷新二級緩存,這個刷新間隔根據具體需求來設置。好比設置30分鐘、60分鐘等。設置值的單位是毫秒級別的。
3.2:mybatis二級緩存的侷限性
mybaitis二級緩存對細顆粒度的數據,緩存實現很差。
好比:在對商品信息進行緩存,因爲商品信息訪問量大,可是要求用戶每次查詢都是最新的商品信息,此時若是使用二級緩存的話,就沒法實現當一個商品發生變化只刷新該商品的緩存信息而不刷新其餘商品緩存信息。由於二級緩存是mapper級別的。當一個商品信息發生更新,全部商品信息緩存數據都會被清空的。注意:是清空
解決此類問題,須要在業務層根據需求對數據進行鍼對性的緩存。沒錯!就是針對性的緩存。
好比能夠對常常變化的數據操做放到單獨的另一個namespace的mapper中去。
四:總結&下節預告
經過學習本節:
1:瞭解分佈式、集羣及區別
2:mybatis怎麼整合ehcache
3:mybatis二級緩存使用的優缺點及使用場景
下節預告:下課咱們將要學習的是---mybatis整合spirng。歡迎你們繼續學習。
若是您喜歡凱哥Java的文章,歡迎對凱哥的文章進行指點一二。謝謝你們。併發

相關文章
相關標籤/搜索