多层次结构的应用程序是目前发展的趋势,这种程序都需要庞大的数据库支持。而数据传输的能力直接影响程序性能,成为程序可扩展性的瓶颈。因此很多开发者开始在程序中使用 内存分布式缓存 来提高程序性能。
同时, 内存分布式缓存 也带来了问题,那就是数据在缓存中如何保证与数据库同步。如果程序使用 Oracle数据库 ,那么 NCache 会帮你解决难题! NCache 提供OracleCacheDependency(数据库缓存依赖项),通过字符串连接数据库发现被注册的变化项。从而通过Oracle的数据库里的通知功能,更新相应的缓存。那么NCache是如何帮助程序实现的呢?
简单的说,你只需开启Oracle数据库的通知功能,然后添加NCache项目中的OracleCacheDependency到应用程序。总的分三个步骤完成:
首先启动Oracle数据库的通知功能,执行代码如下:
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;
|
最后初始化缓存,然后创建OracleCacheDependency并添加到项目中:
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);
|
当你使用OracleCacheDependency添加一个缓存项目时,将被注册数据库。同时如果有任何触发 缓存依赖 的变化,缓存将删除以前数据,并重新加载更新的缓存数据。
你可以现在就下载试用 NCache ,当然初学者可以先了解下Oracle数据库的通知功能。