Coherence提供了四種Cache數據管理模式:
Read-Through,
Write-Through,
Refresh-Ahead
Write-Behind
數據管理模式體現在CacheStore 接口的功能上。
CacheStore負責直接和數據源交互,進行增刪改查操作;并也負責和Coherence Cache交互,向其中寫數據(put),讀數據(get)和刪除數據(remove)。CacheStore相當于 數據源和Cache間的橋梁。
對于不同的應用,由于數據源不同,如:DB,WebService ,FileSystem等, CacheStore有不同的實現。它一般作為應用的一部分。Coherence也為 Hibernate,Toplink等實現了一個CacheStore。
5.1 Read-Through
Read-Through 的基本特點是同步讀取。步驟為:
1)應用調用 CacheStore 查詢數據X;
2)CacheStore 去Cache中查詢,未發現數據時,向數據庫執行查詢操作,并將查詢結果放到 Cache中, 并將結果返回給應用;
3)如果發現Cache中有數據,則直接從Cache讀取,并返回給應用。
其特點體現在第二步,CacheStore調用 cache.get(X) 到 CacheStore 給應用返回數據,是同步操作。 也就是要在一個同步過程中先等待數據查詢,Cache被填充,才能獲得數據。 這種模式的性能比較低,不及 Refresh-Ahead。
5.2 Write-Through
Write-Through 對應于數據修改操作,如 update,也具有同步的特點。
1)應用調用 CacheStore update數據X;
2)CacheStore 先update Cache中的數據,然后再向數據庫執行update操作;
這種模式在一個同步過程中,先改Cache,再改數據庫。因此性能也不是最理想的。
5.2 Refresh-Ahead
與Read-Through相對,它是異步的。
Coherence在Cache數據過期前,有CacheStore自動重新從數據庫加載數據。而前臺應用在查詢數據時,CacheStore 僅調用Cache.get(X)。因此這種模式的效率明顯高于read-through。 自動重載數據的時間可以設定。
5.2 Write-behind
與write-through相對,它是異步的。
應用調用CacheStore進行update時,CacheStore不去操作數據庫,直接返回結果。而Coherence集群自動對操作進行排隊(queue),在間隔一段時間后(interval), CacheStore在執行隊列中的 update 操作。 這樣,減少的同步操作數據庫的時間被節省,修改類功能的性能就能得到大幅提高。這也是Coherence的一大特色。
Coherence企業級緩存(一) 特點
Coherence企業級緩存(二) QuickStart和編程
Coherence企業級緩存(三) 四種緩存類型
Coherence企業級緩存(四) 數據管理模式
Coherence企業級緩存(五)與Hibernate集成(1)
Coherence企業級緩存(五)與Hibernate集成(2)
Coherence企業級緩存(六) JMX 管理和監控
Coherence企業級緩存(七) 性能調優
Read-Through,
Write-Through,
Refresh-Ahead
Write-Behind
數據管理模式體現在CacheStore 接口的功能上。
CacheStore負責直接和數據源交互,進行增刪改查操作;并也負責和Coherence Cache交互,向其中寫數據(put),讀數據(get)和刪除數據(remove)。CacheStore相當于 數據源和Cache間的橋梁。
對于不同的應用,由于數據源不同,如:DB,WebService ,FileSystem等, CacheStore有不同的實現。它一般作為應用的一部分。Coherence也為 Hibernate,Toplink等實現了一個CacheStore。

5.1 Read-Through
Read-Through 的基本特點是同步讀取。步驟為:
1)應用調用 CacheStore 查詢數據X;
2)CacheStore 去Cache中查詢,未發現數據時,向數據庫執行查詢操作,并將查詢結果放到 Cache中, 并將結果返回給應用;
3)如果發現Cache中有數據,則直接從Cache讀取,并返回給應用。
其特點體現在第二步,CacheStore調用 cache.get(X) 到 CacheStore 給應用返回數據,是同步操作。 也就是要在一個同步過程中先等待數據查詢,Cache被填充,才能獲得數據。 這種模式的性能比較低,不及 Refresh-Ahead。
5.2 Write-Through
Write-Through 對應于數據修改操作,如 update,也具有同步的特點。
1)應用調用 CacheStore update數據X;
2)CacheStore 先update Cache中的數據,然后再向數據庫執行update操作;
這種模式在一個同步過程中,先改Cache,再改數據庫。因此性能也不是最理想的。
5.2 Refresh-Ahead
與Read-Through相對,它是異步的。
Coherence在Cache數據過期前,有CacheStore自動重新從數據庫加載數據。而前臺應用在查詢數據時,CacheStore 僅調用Cache.get(X)。因此這種模式的效率明顯高于read-through。 自動重載數據的時間可以設定。
5.2 Write-behind
與write-through相對,它是異步的。
應用調用CacheStore進行update時,CacheStore不去操作數據庫,直接返回結果。而Coherence集群自動對操作進行排隊(queue),在間隔一段時間后(interval), CacheStore在執行隊列中的 update 操作。 這樣,減少的同步操作數據庫的時間被節省,修改類功能的性能就能得到大幅提高。這也是Coherence的一大特色。
Coherence企業級緩存(一) 特點
Coherence企業級緩存(二) QuickStart和編程
Coherence企業級緩存(三) 四種緩存類型
Coherence企業級緩存(四) 數據管理模式
Coherence企業級緩存(五)與Hibernate集成(1)
Coherence企業級緩存(五)與Hibernate集成(2)
Coherence企業級緩存(六) JMX 管理和監控
Coherence企業級緩存(七) 性能調優
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
