ASP.NET缓存管理
Cache
是将一些数据保存服务器内存,Asp.net可以根据服务器的使用情况,来动态管理管理内存(在内存不足时系统可能会删掉某些缓存)。开发者可以将一些频繁读取不经常变的数据保存到缓存,以提效率,因CPU从缓存中获取数据是最快的。
缓存注意点
- 缓存控件是有效的,不能保存所有的数据
- 缓存的有效时间,根据不同需求可以设置绝对时间和滑动有效时间
- 缓存依赖项,当依赖项变化时缓存删除,依赖项包括文件依赖项和数据库依赖项
- 缓存可能失效
缓存依赖
在开发中可将频繁查询且数据量不的的数据库中的表保存到缓存,提高查询效率。当数据库表中数据变化时缓存无效,这里利用缓存数据库依赖项(目前只支持SQL),一个缓存可以通过AggregateCacheDependency
依赖多个缓存依赖项.
public class CacheManager
{
public static List<Person> persons
{
get {
HttpContext context = HttpContext.Current;
List<Person> list = context.Cache["Persons"] as List<Person>;
if(list == null)
{
//从数据库中读取....省略了
//保存到缓存
// 第一个参数:数据库名称; 第二个表名
SqlCacheDependency perdepen = new SqlCacheDependency("North", "Persons");
context.Cache.Add("Persons", list, perdepen, Cache.NoAbsoluteExpiration,new TimeSpan(1, 0, 0), CacheItemPriority.Normal,(k,v,reason)=> { });
}
return list;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)