多層次結(jié)構(gòu)的應(yīng)用程序是目前發(fā)展的趨勢,這種程序都需要龐大的數(shù)據(jù)庫支持。而數(shù)據(jù)傳輸?shù)哪芰χ苯佑绊懗绦蛐阅埽蔀槌绦蚩蓴U(kuò)展性的瓶頸。因此很多開發(fā)者開始在程序中使用 內(nèi)存分布式緩存 來提高程序性能。
同時(shí), 內(nèi)存分布式緩存 也帶來了問題,那就是數(shù)據(jù)在緩存中如何保證與數(shù)據(jù)庫同步。如果程序使用 Oracle數(shù)據(jù)庫 ,那么 NCache 會(huì)幫你解決難題! NCache 提供OracleCacheDependency(數(shù)據(jù)庫緩存依賴項(xiàng)),通過字符串連接數(shù)據(jù)庫發(fā)現(xiàn)被注冊的變化項(xiàng)。從而通過Oracle的數(shù)據(jù)庫里的通知功能,更新相應(yīng)的緩存。那么NCache是如何幫助程序?qū)崿F(xiàn)的呢?
簡單的說,你只需開啟Oracle數(shù)據(jù)庫的通知功能,然后添加NCache項(xiàng)目中的OracleCacheDependency到應(yīng)用程序。總的分三個(gè)步驟完成:
首先啟動(dòng)Oracle數(shù)據(jù)庫的通知功能,執(zhí)行代碼如下:
1
2
|
[SQL]
"grant change notification to scott"
|
再次在你的程序中添加需要引用的NCache配置:
1
2
3
|
using
Alachisoft.NCache.Web.Caching;
using
Alachisoft.NCache.Runtime.Dependencies;
using
Alachisoft.NCache.Runtime;
|
最后初始化緩存,然后創(chuàng)建OracleCacheDependency并添加到項(xiàng)目中:
1
2
3
4
5
6
7
8
9
|
Cache _cache = NCache.InitializeCache(
"oracleDependencyCache"
);
_cache.Clear();
?
String connectionString =
"User Id=scott;Password=test;Data Source=oracle"
;
String query =
"SELECT CustomerID FROM Customers WHERE CustomerID = 006"
;
?
CacheDependency orclSync =
new
OracleCacheDependency(connectionString, query);
?
_cache.Insert(
"Customer:006"
,
"myValue"
, orclSync,Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Normal);
|
當(dāng)你使用OracleCacheDependency添加一個(gè)緩存項(xiàng)目時(shí),將被注冊數(shù)據(jù)庫。同時(shí)如果有任何觸發(fā) 緩存依賴 的變化,緩存將刪除以前數(shù)據(jù),并重新加載更新的緩存數(shù)據(jù)。
你可以現(xiàn)在就下載試用 NCache ,當(dāng)然初學(xué)者可以先了解下Oracle數(shù)據(jù)庫的通知功能。
NCache實(shí)現(xiàn)Oracle數(shù)據(jù)與分布式緩存數(shù)據(jù)同步的3個(gè)步驟
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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