iBATIS緩存cacheModel屬性的實(shí)例分析

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)iBATIS緩存cacheModel屬性的實(shí)例分析,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的肇州網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

iBATIS緩存模型可以在Mapped Statement中使用,在內(nèi)存中緩存常用的數(shù)據(jù)。屬性cacheModel 定義查詢(xún)mapped statement 的緩存。每一個(gè)查詢(xún)mapped statement 可以使用不同或相同的cacheModel。以下給出個(gè)例子:

﹤cacheModel id="product-cache" imlementation="LRU"﹥    ﹤flushInterval hours="24"/﹥    ﹤flushOnExecute statement="insertProduct"/﹥    ﹤flushOnExecute statement="updateProduct"/﹥    ﹤flushOnExecute statement="deleteProduct"/﹥    ﹤property name="size" value="1000" /﹥   ﹤/cacheModel﹥   ﹤statement id="getProductList" parameterClass="int" cacheModel="product-cache"﹥     select * from PRODUCT where PRD_CAT_ID = #value#   ﹤/statement﹥

上面例子中,“getProductList”的緩存使用 WEAK 引用類(lèi)型,每 24 小時(shí)刷新一次,或當(dāng)更新的操作發(fā)生時(shí)刷新。

Cache Model使用插件方式來(lái)支持不同的緩存算法。它的實(shí)現(xiàn)在 cacheModel 的用 type屬性來(lái)指定(如上所示)。指定的實(shí)現(xiàn)類(lèi)必須實(shí)現(xiàn) CacheController接口,或是下面 4個(gè)別名中的其中之一。Cache Model 實(shí)現(xiàn)的其他配置參數(shù)通過(guò) cacheModel的 property元素來(lái)設(shè)置。目前包括以下的 4 個(gè)實(shí)現(xiàn):

◆"MEMORY” (com.ibatis.db.sqlmap.cache.memory.MemoryCacheController) 。MEMORY cache 實(shí)現(xiàn)使用 reference 類(lèi)型來(lái)管理 cache 的行為。垃圾收集器可以根據(jù) reference類(lèi)型判斷是否要回收 cache 中的數(shù)據(jù)。MEMORY實(shí)現(xiàn)適用于沒(méi)有統(tǒng)一的對(duì)象重用模式的應(yīng)用,或內(nèi)存不足的應(yīng)用。

◆“LRU” (com.ibatis.db.sqlmap.cache.lru.LruCacheController) 。LRU Cache 實(shí)現(xiàn)用“近期最少使用”原則來(lái)確定如何從 Cache 中清除對(duì)象。當(dāng) Cache溢出時(shí),最近最少使用的對(duì)象將被從 Cache 中清除。使用這種方法,如果一個(gè)特定的對(duì)象總是被使用,它將保留在 Cache 中,而且被清除的可能性最小。對(duì)于在較長(zhǎng)的期間內(nèi),某些用戶(hù)經(jīng)常使用某些特定對(duì)象的情況(例如,在 PaginatedList 和常用的查詢(xún)關(guān)鍵字結(jié)果集中翻頁(yè)) ,LRU Cache 是一個(gè)不錯(cuò)的選擇。

◆“FIFO” (com.ibatis.db.sqlmap.cache.fifo.FifoCacheController) 。FIFO Cache 實(shí)現(xiàn)用“先進(jìn)先出”原則來(lái)確定如何從 Cache 中清除對(duì)象。當(dāng) Cache 溢出時(shí),***進(jìn)入 Cache 的對(duì)象將從 Cache 中清除。對(duì)于短時(shí)間內(nèi)持續(xù)引用特定的查詢(xún)而后很可能不再使用的情況,F(xiàn)IFO Cache 是很好的選擇。

◆“OSCACHE” (com.ibatis.db.sqlmap.cache.oscache.OSCacheController)  。OSCACHE Cache 實(shí)現(xiàn)是OSCache2.0緩存引擎的一個(gè) Plugin。它具有高度的可配置性,分布式,高度的靈活性。

上述就是小編為大家分享的iBATIS緩存cacheModel屬性的實(shí)例分析了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站題目:iBATIS緩存cacheModel屬性的實(shí)例分析
網(wǎng)址分享:http://muchs.cn/article6/iehjog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、品牌網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司