Caching Application Block 的基本架构如下所示,图中很清楚的写出了Cache Manager可以使用3中方式对数据进行缓存:
1. Null backing store 存储策略 : 默认的存储策略,存储的数据只存储在内存的缓存中,并不持久保存, 它可用于所有支持的应用类型.适合于保存一些临时的数据,或者用于保存当你重启程序时想要恢复的一些数据.
2. Isolated storage 存储策略 : 隔离存储策略适用于以下情况:
- 需要持久性的保存数据,访问用户较少.
- 没有数据库设备.
- 不想使用数据库这类开销较大的资源.
3. Database Cache storage 存储策略 : 数据库存储策略,该数据库可以运行在使用缓存的或在不同的服务器应用程序相同的服务器,申请数目使用缓存,数据库可以支持只依赖于数据库的存储限制,使用 起来比较麻烦,需要自己写一些存储过程.
默认的Null backing store 存储策略我们已经在上一章使用过了,Database Cache storage没研究透,先暂时不讲,如果有了解的朋友可以留言帮助完善,下面我们来看看Isolated storage 存储策略的实现:
using System;
using System.Collections.Generic;
using Microsoft.Practices.EnterpriseLibrary.Caching;
using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;
namespace EnterpriseLibraryCacheTest
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TestCache();
}
}
protected void TestCache()
{
//create cache
CacheManager cm = (CacheManager)CacheFactory.GetCacheManager();
//add cache
List<string> listQuery=new List<string>
{
"1","2"
};
//
cm.Add("myCache", listQuery);
//get cache
List<string> listResult = (List<string>)cm.GetData("myCache");
foreach (string ary in listResult)
{
Response.Write(ary);
}
}
}
}
using System.Collections.Generic;
using Microsoft.Practices.EnterpriseLibrary.Caching;
using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;
namespace EnterpriseLibraryCacheTest
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TestCache();
}
}
protected void TestCache()
{
//create cache
CacheManager cm = (CacheManager)CacheFactory.GetCacheManager();
//add cache
List<string> listQuery=new List<string>
{
"1","2"
};
//
cm.Add("myCache", listQuery);
//get cache
List<string> listResult = (List<string>)cm.GetData("myCache");
foreach (string ary in listResult)
{
Response.Write(ary);
}
}
}
}