當前位置:
首頁 > 知識 > 框架學習系列mybatis第二十三整合ehcache緩存使用

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

1:什麼是分散式?分散式與集群的區別。

2:ehcache與mybatis的整合

3:mybatis二級緩存應用場景&局限性

4:總結&下節預告

本文是《凱哥陪你學系列-框架學習之mybatis框架學習》中第二十三篇 mybatis整合ehcache緩存使用

將mybatis和ehcache緩存整合之前,我們先來了解下分散式。

一:什麼是分散式?

從俠義方面來講,分散式是指多台PC在地理位置上分布在不同的地方,共同來完成同一個東西。

比如,在大型餐廳,想要吃一份菜先有洗菜工,把需要的菜洗好,再有切菜工、配菜工配好之後,最後再有大廚掌勺進行烹飪會,最後將菜肴上到餐桌上。(從物理位置上來說,洗菜工、切菜工、配菜工和大廚也在不同的物理位置)

這裡,將洗菜、切菜、配菜和烹飪進行切分了。從效率上來說,大大提高了出菜的速度。從成本上來說,也不是很高(如果洗菜、切菜、配菜都讓大廚一個來做的話,需要很多大廚。而往往一個大廚的工資會比好幾個洗菜工+切菜工工資都高的)。

所以,可以理解,在分散式各個節點中,可以使用普通的PC機都可以的。

1.2:分散式與集群的區別。

在了解了分散式後,這裡需要與集群進行區分。因為很多時候容易把集群和分散式弄混淆。

分散式:

多個節點完成同一個任務。可以理解為中央集權制。層層拆分後,最總將處理的結果反饋給一個中心。

缺點就是,如果中間某個環節出了問題,也許會導致整個鏈出問題(如果沒有負載均衡之類處理的話),有可能導致整個系統崩潰。

分散式分任務處理高並發的。

集群:

同一套系統,放在不同的機器上運行。比如在窗口買票,每個窗口都可以單獨的完成購票整個流程。

集群使得系統有高擴展性和高可用性

好了,不多說這些了。有時間或者有需要的朋友,留言下。後續可以單獨開篇來講分散式、負載均衡、集群這些。在這裡就不多說了。

下面來看流程圖:

1.3:什麼是ehcache

一句話:ehcache就是一個分散式的緩存框架

二:ehcache與mybatis的整合

1.1:mybatis與ehcache整合思路

cache是一個介面。默認實現的是mybatis的PerpetualCache.如果想要整合mybatis的二級緩存,那麼需要實現cache介面即可。

cache介面如下:

1.2:添加需要的jar包

1.3:在映射文件中cache標籤的type值為ehcache的實現類。如下圖:

1.4:添加ehcache的配置文件

在config下,創建ehcache.xml文件

1.5:測試ehcache的二級緩存

三: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的文章,歡迎對凱哥的文章進行指點一二。謝謝大家。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

mybatis遇到的兩個錯誤
框架學習系列 mybatis 第二十四整合spring1
框架學習系列 mybatis 第二十二mybatis緩存使用
框架學習系列 mybatis 第二十一篇 延遲載入
框架學習系列 mybatis 第二十篇 電商項目中多對多映射

TAG:凱哥java |

您可能感興趣

mybatis與spring整合:Dao層映射配置
rabbitMQ系列高級整合應用rabbitTemplate
node整合webstorm
Facebook計劃整合Messenger、WhatsApp和Instagram,但今年內無望
消息稱 Facebook 計劃整合 WhatsApp、Instagram 和 Messenger 的聊天功能
消息稱 Facebook 計劃整合 WhatsApp、Instagram和Messenger 的聊天功能
spring-boot 之 使員Druid 整合Mybatis 最簡配置多數據源
spring boot 整合shiro 錯誤
財經詞條 Vol.43 Backward Integration 上游整合
SpringMVC + security模塊 框架整合詳解
Spring Cloud Alibaba Sentinel 整合 Feign 的設計實現
Spring整合Hibernate.Final
Spring4+hibernate+SpringMvc整合
Mybatis與Spring的整合
Springboot2.0 Theamleaf Security整合快速入門
SpringBoot整合Quartz 註解開發
Spring Boot 2.1.X整合最新版本Elasticsearch的相關問題
spring boot 2.x 整合mybaits及分頁插件
Spring Boot整合Apollo配置中心
Intel Lakefield SoC將直接整合內存,由Foveros 3D工藝打造