Microsoft Enterprise Library Caching Application Block
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);
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现