新闻中心

C# 怎么使用 MemoryCache 实现内存缓存_C# MemoryCache 内存缓存使用指南

2025-11-09
浏览次数:
返回列表
MemoryCache是.NET中轻量级内存缓存,支持线程安全操作,通过Set/Get方法添加读取数据,可设置绝对或滑动过期策略,支持复杂对象缓存与移除回调,适用于本地应用性能优化。

c# 怎么使用 memorycache 实现内存缓存_c# memorycache 内存缓存使用指南

在 C# 中,MemoryCache 是 .NET Framework 4.0 引入的一个轻量级内存缓存类,位于 System.Runtime.Caching 命名空间中,适用于桌面应用、Windows 服务或 ASP.NET 应用中的本地数据缓存。相比第三方缓存工具,MemoryCache 使用简单、无需依赖外部服务,适合存储临时数据以提升性能。

引入命名空间并创建 MemoryCache 实例

使用 MemoryCache 前需添加对 System.Runtime.Caching 的引用(.NET Framework 项目默认包含,.NET Core/.NET 5+ 需安装 NuGet 包 Microsoft.Extensions.Caching.Memory)。

在 .NET Framework 中:

using System.Runtime.Caching;

获取默认的缓存实例:

var cache = MemoryCache.Default;

也可创建自定义实例(推荐用于更灵活控制):

var cache = new MemoryCache("MyCache");

添加和读取缓存项

通过 Set 方法添加数据,Get 方法读取数据。

示例:缓存一个字符串

cache.Set("username", "zhangsan", DateTimeOffset.Now.AddMinutes(10));

读取缓存:

Yaara Yaara

使用AI生成一流的文案广告,电子邮件,网站,列表,博客,故事和更多…

Yaara 95 查看详情 Yaara
var value = cache.Get("username") as string;
if (value != null)
{
    Console.WriteLine("缓存命中: " + value);
}
else
{
    Console.WriteLine("缓存未命中");
}

支持设置缓存过期策略,如绝对过期时间(如上例)或滑动过期(访问后自动延长):

var policy = new CacheItemPolicy
{
    SlidingExpiration = TimeSpan.FromMinutes(5) // 5分钟内访问则延长
};
cache.Set("data", dataList, policy);

缓存复杂对象与移除机制

MemoryCache 可缓存任意对象类型,例如 List、自定义类等。

var users = GetUsersFromDatabase();
cache.Set("users", users, DateTimeOffset.Now.AddMinutes(20));

可手动移除缓存项:

cache.Remove("users");

也可在添加时注册回调,在缓存项被移除时执行操作:

void OnCacheRemoved(CacheEntryRemovedArguments arguments)
{
    Console.WriteLine($"缓存 {arguments.CacheItem.Key} 已被移除,原因: {arguments.RemovedReason}");
}
<p>var policy = new CacheItemPolicy
{
AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(10),
RemovedCallback = OnCacheRemoved
};
cache.Set("tempData", "test", policy);

线程安全与性能建议

MemoryCache 本身是线程安全的,多个线程可同时读写,无需额外加锁。

使用建议:

  • 避免缓存大量数据,防止内存溢出
  • 合理设置过期时间,防止数据陈旧
  • 频繁使用的缓存键建议封装为常量
  • 在 ASP.NET 中,优先使用 IMemoryCache(来自 Microsoft.Extensions.Caching.Memory),更适合 Web 场景

基本上就这些。MemoryCache 简单高效,适合本地缓存场景,掌握 Set、Get、过期策略和回调机制就能满足大多数需求。

以上就是C# 怎么使用 MemoryCache 实现内存缓存_C# MemoryCache 内存缓存使用指南的详细内容,更多请关注其它相关文章!


# 开源  # 桂林响应式网站建设对比  # 赣榆seo短视频  # 佛山谷歌seo推广官网  # 鹤壁新区文明网站建设  # 海阳信息推广网站  # 济南网站推广单位电话  # 网站建设实训方案范文  # 河北微信营销推广方案  # 白杨seo博客  # 迪庆州网站推广托管  # 意味着什么  # 如何选择  # windows  # 有什么区别  # 自定义  # 这对  # 微软  # 适用于  # 回调  # 移除  # .net  # c#  # microsoft  # win  # 工具 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 处理动态列数据:J*a ArrayList的正确初始化与字符累加教程  J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析  零跑汽车11月交付量达70327台 实现连续9个月正增长  Python:递归比较文件夹内容并找出特定类型文件的差异  Python多线程中正确使用sigwait处理SIGALRM信号  “音游” × “怪文书” 题材的节奏冒险游戏 《晕晕电波症候群》确定于2026年4月发售!  探索高级语言到原生C/C++的转译:挑战与内存管理策略  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  在Go开发中优雅管理ListenAndServe进程:GoSublime集成方案  漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  微信网页版扫码登录入口 微信网页版二维码登录入口  高德地图沿途添加点失败如何解决 高德多点规划方法  Python自定义类排序:解决lambda键值访问TypeError的实践指南  支付宝解绑银行卡步骤_支付宝如何解除绑定银行卡  蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台  HTML元素状态管理:根据DIV内容动态启用/禁用按钮  一加Ace 6T支持全新明眸护眼:通过了最严苛的护眼小金标认证  怎样更改Windows系统的默认安装路径_避免C盘爆满的终极设置【技巧】  sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置  AI泡沫首次被“刺破”:GPU十年都无法存活!  C++如何实现异步操作_C++11使用std::future和std::async进行异步编程  Win11怎么修改默认浏览器_Windows 11设置Chrome为默认  外媒分析《GTA6》定价:卖100美元可以但真没必要!  汽水音乐在线解析 汽水音乐在线解析入口  C++ explicit关键字防止隐式转换_C++构造函数安全规范  提升Kafka消费者健壮性:会话超时处理与消息处理语义  怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】  天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南  如何使用Node.js csv 包按条件移除含空字段的CSV记录  解决Bootstrap卡片顶部边距导致背景图下移的问题  实现全屏滚动与导航点:专业教程  J*aScript map 方法中处理循环元素为空数组的策略  初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解  J*a编写用户注册与登录功能_掌握字符串与验证逻辑  C#如何安全地从用户上传的XML文件中读取数据? 验证与清理策略  Fabric模组开发:自定义物品与物品组的现代管理方法  J*aScript中向JSON对象添加新属性的正确姿势  Safari怎么安装扩展程序 浏览器插件安装与管理方法【详解】  理解Python模块与全局变量的作用域管理  正确连接J*aScript到HTML实现可点击图片与自定义事件处理  windows10怎么查看本机ip_windows10命令提示符ipconfig使用  ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句  QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用  ArchiveofOurOwn小说阅读-ArchiveofOurOwn同人作品访问链接  J*aScript中localStorage数据的获取、清洗与格式化教程  windows10怎么查看硬盘序列号_windows10硬盘id查询命令  夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案  PyTorch模型训练效果不佳?深入剖析常见错误与调试技巧  蛙漫画网页版全站入口 蛙漫热门作品免费浏览  Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录 

搜索