[笔记] ASP.NET本身的缓存实现机制,基于Cache的实现。提供按分类进行管理的缓存功能
2008-08-28 14:34
986 查看
1. 申明一个Cache
private static Cache cache = HttpRuntime.Cache;
2. 往Cache内插入值
cache.Insert(CreateKey(category, key), value, null, Cache.NoAbsoluteExpiration, TimeSpan.Zero);
3 读取Cache类的值
/// <summary>
/// 获取缓存项
/// </summary>
/// <param name="category">缓存所属分类</param>
/// <param name="key">键</param>
/// <returns>缓存项</returns>
public static object GetValue(string category, string key)
{
return cache[CreateKey(category, key)];
}
4 清除Cache内的值
//全部清除Cache内的值
if (cache.Count == 0)
{
//没有缓存项,直接返回
return;
}
lock (cache)
{
List<string> list = new List<string>();
var enumerator = cache.GetEnumerator();
string key = null;
while (enumerator.MoveNext())
{
key = enumerator.Key.ToString();
list.Add(key);
}
list.ForEach(item => cache.Remove(item));
}
//清除指定的Cache内的值
lock (cache)
{
var enumerator = cache.GetEnumerator();
List<string> list = new List<string>(cache.Count);
string key = null;
while (enumerator.MoveNext())
{
key = enumerator.Key.ToString();
if (key.StartsWith(start))
{
//以所属分类作为开头的键符合清除条件
list.Add(key);
}
}
list.ForEach(item => cache.Remove(item));
}
private static Cache cache = HttpRuntime.Cache;
2. 往Cache内插入值
cache.Insert(CreateKey(category, key), value, null, Cache.NoAbsoluteExpiration, TimeSpan.Zero);
3 读取Cache类的值
/// <summary>
/// 获取缓存项
/// </summary>
/// <param name="category">缓存所属分类</param>
/// <param name="key">键</param>
/// <returns>缓存项</returns>
public static object GetValue(string category, string key)
{
return cache[CreateKey(category, key)];
}
4 清除Cache内的值
//全部清除Cache内的值
if (cache.Count == 0)
{
//没有缓存项,直接返回
return;
}
lock (cache)
{
List<string> list = new List<string>();
var enumerator = cache.GetEnumerator();
string key = null;
while (enumerator.MoveNext())
{
key = enumerator.Key.ToString();
list.Add(key);
}
list.ForEach(item => cache.Remove(item));
}
//清除指定的Cache内的值
lock (cache)
{
var enumerator = cache.GetEnumerator();
List<string> list = new List<string>(cache.Count);
string key = null;
while (enumerator.MoveNext())
{
key = enumerator.Key.ToString();
if (key.StartsWith(start))
{
//以所属分类作为开头的键符合清除条件
list.Add(key);
}
}
list.ForEach(item => cache.Remove(item));
}
相关文章推荐
- Asp.net中XML文件作为中间件进行数据交换功能的实现(c#,sql2000)
- 转:在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)
- asp.net中XML文件作为中间件进行数据交换功能的实现(c#,sql2000)
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- Winform开发框架之参数配置管理功能实现-基于SettingsProvider.net的构建
- 基于ASP.NET+easyUI框架实现图片上传功能(判断格式+即时浏览 )
- ASP.NET MVC 5 实现基于Quartz.net 的任务调度管理平台(三)
- 《ASP.NET基于表单的验证实现网上安全访问,管理》
- 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD)
- 基于ASP.NET+easyUI框架实现图片上传功能(表单)
- 基于ASP.NET+easyUI框架实现图片上传功能(表单)
- 使用ComponentArt.WebUI.for.Asp.net.3.0的TreeView控件实现数据驱动的无限级分类管理[图文教程]
- [ASP.NET学习笔记之五]ASP.NET 中的缓存功能介绍
- 基于asp.net的注销功能的实现
- ASP.NET中的状态管理和缓存机制(转)
- ASP.NET的缓存机制及技术实现
- (转)在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)
- 使用ASP.NET 2.0 输出缓存替换的功能实现Donut Caching
- ASP.NET实现Cache浏览器的管理
- 在ASP.NET 中实现单用户登录(利用Cache, 将用户信息保存在服务器缓存中)[转]