C#中使用MemoryCache需通过Microsoft.Extensions.Caching.Memory实现,支持线程安全、过期策略与依赖项;ASP.NET Core内置注册AddMemoryCache(),其他项目需安装NuGet包并推荐依赖注入;存取用Set/TryGetValue或GetOrCreate,支持绝对/滑动过期、优先级和取消令牌;注意对象线程安全、不可变性、内存占用及进程内限制。
在 C# 中使用 MemoryCache 实现内存缓存,核心是借助 Microsoft.Extensions.Caching.Memory 命名空间下的 IMemoryCache 接口和默认实现类。它轻量、线程安全、支持过期策略和依赖项,适合 ASP.NET Core 应用或普通 .NET 项目(需安装 NuGet 包)。
如果是 ASP.NET Core 项目,IMemoryCache 已内置,只需在 Program.cs 或 Startup.cs 中注册:
Program.cs(.NET 6+)中调用 builder.Services.AddMemoryCache();
Microsoft.Extensions.Caching.Memory
new MemoryCache(new MemoryCacheOptions()) 创建实例(不推荐直接 new,建议依赖注入)在需要缓存的类(如 Controller、Service)构造函数中注入 IMemoryCache:
private readonly IMemoryCache _cache;public MyService(IMemoryCache cache) => _cache = cache;_cache.Set("key", value, TimeSpan.FromMinutes(10));
_cache.TryGetValue("key", out var result)(返回 bool,成功则 result 有值)Get
OrCreate 方法避免重复计算,例如:_cache.GetOrCreate("user_123", entry => { entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(5); return LoadUserFromDb(123); });
MemoryCache 支持多种过期方式和清理控制:
entry.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(30);
entry.SlidingExpiration = TimeSpan.FromMinutes(2);
entry.Priority = CacheItemPriority.Low;
CancellationToken 实现主动失效,比如监听配置变更实际使用中容易忽略但关键的点:
IMemoryCache 是进程内缓存,不跨应用实例,集群部署需搭配 Redis 等分布式缓存_cache.Count 查看当前缓存项数量(仅限 MemoryCache 实例,接口无此属性)基本上就这些。用好 IMemoryCache 不复杂但容易忽略细节,关键是按需设过期、合理封装访问逻辑、注意对象生命周期。
# redis
# microsoft
# 常见问题
# c#
# 内存占用
# .net
# red
# 分布式
# count
# 命名空间
# 封装
# 构造函数
# bool
# 接口
# public
# private
# 线程
# var
# 对象
# 令牌
# 的是
# 只需
# 计时器
# 分页
# 可通过
# 仅限
# 绑定
# 用好
# 移除
相关文章:
如何在自有机房高效搭建专业网站?
如何打造高效商业网站?建站目的决定转化率
建站之星3.0如何解决常见操作问题?
动图在线制作网站有哪些,滑动动图图集怎么做?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
如何使用Golang table-driven基准测试_多组数据测量函数效率
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何在Windows服务器上快速搭建网站?
香港服务器租用每月最低只需15元?
PHP正则匹配日期和时间(时间戳转换)的实例代码
Swift中swift中的switch 语句
,在苏州找工作,上哪个网站比较好?
常州企业建站如何选择最佳模板?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何通过NAT技术实现内网高效建站?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
如何通过WDCP绑定主域名及创建子域名站点?
内部网站制作流程,如何建立公司内部网站?
如何零成本快速生成个人自助网站?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
济南企业网站制作公司,济南社保单位网上缴费步骤?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
表情包在线制作网站免费,表情包怎么弄?
如何通过IIS搭建网站并配置访问权限?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
如何在万网开始建站?分步指南解析
,怎么在广州志愿者网站注册?
如何在Windows 2008云服务器安全搭建网站?
php json中文编码为null的解决办法
如何在阿里云完成域名注册与建站?
如何高效利用亚马逊云主机搭建企业网站?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
建站主机如何选?性能与价格怎样平衡?
官网网站制作腾讯审核要多久,联想路由器newifi官网
平台云上自主建站:模板化设计与智能工具打造高效网站
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
建站之星展会模版如何一键下载生成?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
如何快速查询网址的建站时间与历史轨迹?
如何在阿里云通过域名搭建网站?
北京网站制作网页,网站升级改版需要多久?
如何解决VPS建站LNMP环境配置常见问题?
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何用wdcp快速搭建高效网站?
如何在IIS中新建站点并配置端口与IP地址?
建站ABC备案流程中有哪些关键注意事项?
如何基于云服务器快速搭建个人网站?
大型企业网站制作流程,做网站需要注册公司吗?
建站主机选购指南:核心配置优化与品牌推荐方案
*请认真填写需求信息,我们会在24小时内与您取得联系。