首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

设置asp.net核心2.2的值后,IMemoryCache get返回null

在设置 asp.net core 2.2 的值后,IMemoryCache 的 get 方法返回 null 的可能原因有以下几点:

  1. 缓存键不存在:首先需要确认在设置缓存值时使用的缓存键是否正确。如果缓存键不存在,那么 get 方法将返回 null。可以通过调试或日志记录来确认缓存键的正确性。
  2. 缓存过期:IMemoryCache 可以设置缓存项的过期时间,如果设置的过期时间已经到达或者超过了缓存项的过期时间,那么 get 方法将返回 null。可以通过设置缓存项的过期时间来解决该问题。
  3. 缓存项被移除:IMemoryCache 在内存不足或者达到一定条件时会主动移除缓存项,如果设置的缓存项被移除了,那么 get 方法将返回 null。可以通过监控缓存项的移除事件来判断是否发生了缓存项的移除。
  4. 缓存项被手动移除:在代码中可能会手动调用 Remove 方法来移除缓存项,如果设置的缓存项被手动移除了,那么 get 方法将返回 null。可以检查代码中是否存在手动移除缓存项的逻辑。
  5. 缓存项被替换:IMemoryCache 具有替换缓存项的功能,如果设置的缓存项被替换了,那么 get 方法将返回 null。可以检查代码中是否存在替换缓存项的逻辑。

针对以上情况,可以通过以下方式解决:

  1. 确认缓存键的正确性,并确保在设置缓存值时使用正确的缓存键。
  2. 设置合适的缓存项过期时间,确保缓存项在需要的时间内有效。
  3. 监控缓存项的移除事件,及时处理缓存项被移除的情况。
  4. 检查代码中是否存在手动移除缓存项或替换缓存项的逻辑,确保不会误操作导致缓存项被移除或替换。

对于 asp.net core 2.2,腾讯云提供了一系列云服务和产品,如云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。具体产品介绍和相关链接地址可以参考腾讯云官方网站:https://cloud.tencent.com/。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.net 温故知新【14】:Asp.Net Core WebAPI 缓存

那么在Asp.net Core 中只需要在接口上打上ResponseCacheAttribute并设置max-age时间即可。...首先建一个Asp.Net Core WebAPI 项目,写一个获取学生Get接口。...Name { get; set; } public int Age { get; set; } } } 在接口中我返回Studentage为1-100随机数。...通过该方法传入缓存key和func 委托方法返回来进行查询并缓存,如果没查询到返回null也会存储在缓存中,防止恶意查询不存在数据。...上面的例子,我们设置绝对过期时间是20秒,我们将滑动过期设置5秒,在5秒内有持续访问就一直续命,直到20秒绝对过期。 那么如果没人访问,在5秒就过期了,这样数据下次访问也能及时查询最新数据。

51320
  • NetCore缓存使用详例

    通过缓存,可以比从数据源返回数据副本速度快得多。 应该对应用进行编写和测试,使其 永不 依赖于缓存数据。 ASP.NET Core 支持多个不同缓存。...最简单缓存基于 IMemoryCacheIMemoryCache 表示存储在 web 服务器内存中缓存。 在服务器场上运行应用 (多台服务器) 应确保会话在使用内存中缓存时处于粘滞状态。...缓存指南 代码应始终具有回退选项,以获取数据,而 不是依赖于可用缓存。 缓存使用稀有资源内存,限制缓存增长: 不要 使用外部 输入作为缓存键。 使用过期限制缓存增长。...(IMemoryCache memoryCache) { _memoryCache = memoryCache; } } 最基本使用 Set方法根据Key设置缓存,默认缓存不过期...Console.WriteLine(_memoryCache.Get(cacheKey)); } IMemoryCache提供一些好语法糖供开发者使用,具体内容看下方文档 /// <summary

    70920

    小逗逼连载-7.NetCore缓存使用详例

    缓存可以减少生成内容所需工作,从而显著提高应用程序性能和可伸缩性。 缓存最适用于不经常更改 数据,生成 成本很高。 通过缓存,可以比从数据源返回数据副本速度快得多。...应该对应用进行编写和测试,使其 永不 依赖于缓存数据。 ASP.NET Core 支持多个不同缓存。 最简单缓存基于 IMemoryCache。 ...IMemoryCache 表示存储在 web 服务器内存中缓存。 在服务器场上运行应用 (多台服务器) 应确保会话在使用内存中缓存时处于粘滞状态。...(IMemoryCache memoryCache) { _memoryCache = memoryCache; } } 最基本使用 Set方法根据Key设置缓存,默认缓存不过期...Console.WriteLine(_memoryCache.Get(cacheKey)); } IMemoryCache提供一些好语法糖供开发者使用,具体内容看下方文档 /// <summary

    39900

    全新升级AOP框架Dora.Interception: 编程体验

    由于Dora.Interception建立在依赖注入框架之上,所以我们可以在构造函数中注入依赖对象,在这里我们就注入了用来缓存返回IMemoryCache 对象。...在利用它们生成代码缓存键Key对象之后,我们利用构造函数中注入IMemoryCache 对象确定是否存在缓存返回。...如果存在,我们直接调用InvocationContext 对象SetReturnValue方法将它设置为方法返回,并直接“短路”返回,目标方法将不再执行。...由于输出间隔被设置为1秒,如果方法返回被缓存,那么输出时间是相同,下图所示输出结果体现了这一点(源代码)。...>方法和SetReturnValue提起参数和设置返回

    53460

    ASP.NET Core 与 RESTful API 开发实战》-- (第7章)-- 读书笔记(上)

    第 7 章 高级主题 7.1 缓存 缓存是一种通过存储资源备份,在请求时返回资源备份技术。...ASP.NET Core 支持多种形式缓存,既支持基于 HTTP 缓存,也支持内存缓存和分布式缓存,还提供响应缓存中间件 HTTP 缓存,服务端返回资源时,能够在响应消息中包含 HTTP 缓存消息头...验证缓存资源方式有两种: 通过响应消息头中 Last-Modified 使用实体标签消息头 ASP.NET Core 提供 [ResponseCache] 特性能够为资源指定 HTTP 缓存行为...Mapper { get; set; } public IRepositoryWrapper RepositoryWrapper { get; set; } public IMemoryCache...,由多个应用服务器共享 ASP.NET Core 使用分布式缓存,需要用到 IDistributedCache ASP.NET Core 提供了 IDistributedCache 接口3种实现方式:

    56120

    MemoryCache:内存缓存

    public static void AddMemoryCacheSetup(this IServiceCollection services) { if (services == null...cache; public BlogCacheAOP(ICaching cache) { _cache = cache; } } 2、用法 // 获取缓存...var cacheValue = _cache.Get(cacheKey); // 设置缓存 _cache.Set(cacheKey, response, 10); 三、可以直接使用官方缓存接口 IMemoryCache...,效果是一样,只不过自定义可以做扩展,举例来说 private readonly IMemoryCache _cache; //还是通过构造函数方法,获取 public DemoService(IMemoryCache...采用最新前后端完全分离技术【 ASP.NET Core Api 6.0 + Vue 2.x 】,并结合 IdentityServer4 ,可快速解决多客户端和多资源服务统一认证与鉴权问题,以及整合较为完善数据权限控制

    27770

    全新升级AOP框架Dora.Interception

    由于Dora.Interception建立在依赖注入框架之上,所以我们可以在构造函数中注入依赖对象,在这里我们就注入了用来缓存返回IMemoryCache 对象。...在利用它们生成代码缓存键Key对象之后,我们利用构造函数中注入IMemoryCache 对象确定是否存在缓存返回。...如果存在,我们直接调用InvocationContext 对象SetReturnValue方法将它设置为方法返回,并直接“短路”返回,目标方法将不再执行。...由于输出间隔被设置为1秒,如果方法返回被缓存,那么输出时间是相同,下图所示输出结果体现了这一点(源代码)。...>方法和SetReturnValue提起参数和设置返回

    31710

    【愚公系列】2022年12月 Redis数据库-缓存雪崩和缓存穿透问题解决

    如果使用时候想设置缓存是永久有效,此时这个将导致无法设置缓存永久有效,需要将该改为0(或负数) 设置为0 或者 负数,不生效 4、全局注册:builder.Services.AddScoped<.../// (2).如果使用时候想设置缓存是永久有效,此时这个将导致无法设置缓存永久有效,需要将该改为0(或负数) /// (3).设置为0 或者 负数,不生效 /// </param...SetCacheRandomTime(cacheEntry, defaultExpireSecondes); } //2.2 返回赋值 (这个来源于委托调用...SetCacheRandomTime(cacheEntry, defaultExpireSecondes); } //2.2 返回赋值 (这个来源于委托调用...至于缓存穿透,通常采用cache null策略,表现在调用时候,对目标值不判空,直接存入缓存即可 2.2 依赖 nuget安装:Microsoft.Extensions.Caching.Memory

    52220

    关于 ASP.NET 内存缓存你需要知道 10 点

    上述代码在 Index() 这个 action 中设置了一个缓存项。这是通过使用 IMemoryCache Set() 来完成。Set() 方法第一个参数是键名,用来标识该数据项。...如果该数据项存在的话,就会被返回并且被赋值给 timestamp 这个字符串变量。然后这个 timestamp 就会被传递给 Show 视图。...第一种办法使用了你早先用过同一个 Get() 方法,这一次它被拿来跟 if 块一起用。如果 Get() 不能在缓存中找到指定数据项,IsNullOrEmpty() 就会返回 true。...TryGet() 方法会返回一个布尔来指明数据项有没有被找到。实际数据项可以使用一个输出参数拉取出来。如果 TryGet() 返回false,Set() 就会被用来添加数据。 6....等你将 AbsoluteExpiration 和 SlidingExpiration 设置, Set() 方法就可以被用来将一个数据项添加到缓存。

    1.2K20

    ASP.NET Core 6框架揭秘实例演示:内存缓存与分布式缓存使用

    对于像ASP.NET这种支持依赖注入应用开发框架来说,采用注入方式来使用IMemoryCache对象是推荐编程方式。...如上面的代码片段所示,用于返回当前时间GetCurrentTime方法在执行时候会调用IMemoryCache对象TryGetValue方法,该方法根据指定Key(“CurrentTime...如果通过该方法返回确定时间尚未被缓存,它会调用Set方法对当前时间予以缓存。我们演示程序会以一秒间隔五次调用这个GetCurrentTime,并将返回时间输出控制台上。...当缓存数据被保存到Redis数据库中时候,对应Key以InstanceName为前缀。应用程序启动(确保Redis服务器被正常启动),如果我们利用浏览器来访问它,依然可以得到与图1类似的输出。...对于演示实例缓存时间戳,它会以图7所示形式保存在我们创建缓存表(AspnetCache)中。与基于Redis数据库存储方式类似,与缓存数据一并存储还包括缓存过期信息。

    1.1K30

    重新整理 .net core 周边阅读篇————AspNetCoreRateLimit

    上面大概翻译是: AspNetCoreRateLimit 是ASP.NET Core 访问速率限制解决方案,设计基于ip地址和客户端id用于控制用于web api和 mvc app客户端访问速率。...这个包包含了IpRateLimitMiddleware and a ClientRateLimitMiddleware两个中间件,用这两个中间件你根据不同场景能设置几种不同限制, 比如限制一个客户端或者一个..._options.IpPolicyPrefix,这个如果是分布式那么应该值得关注一下,因为我们有不同应用服务,如果希望不同应用服务用到不同ip限制,那么IpPolicyPrefix 最好改成应用名...,而不是使用默认。...结 因为篇幅有限,一节invoke逐行分析其如何实现。 以上只是个人看源码过程,希望能得到各位指点,共同进步。 另外.net core 细节篇整理进度为40%。

    99610

    ASP.NET Core 中内存管理和垃圾回收 (GC)

    ASP.NET Core 中内存管理和垃圾回收(GC) 垃圾回收 (GC) 在 .NET Core 中工作方式 GC 会分配堆段,其中每个段都是一系列连续内存。...注意:服务器垃圾回收在具有单个核心计算机上不可用。 有关详细信息,请参阅 IsServerGC。 在典型 Web 服务器环境中,CPU 使用率比内存更重要,因此服务器 GC 更好。...WeakReference类可用于此类型缓存代码。 WeakReference 对象会在内存压力下进行回收。IMemoryCache 默认实现使用WeakReference。...WeakReference类 表示弱引用,即在引用对象同时仍然允许通过垃圾回收来回收该对象。 IMemoryCache 接口 表示未序列化其本地内存中缓存。...此方法不同之处在于,会从 API 返回共用对象。 也就是说: 从方法返回,对象会立即脱离控制。 无法释放对象。 若要设置对象释放,请执行以下操作: 将共用数组封装在可释放对象中。

    33030

    Redis 入门与 ASP.NET Core 缓存

    byte[] (二进制)存储,也可以设置: byte[] str=... ......,请注意查收"); Topic 推送,订阅方可以收到推送消息。...message:推送消息内容。 RedisValue 使用 API 设置时候,都会有这个参数。...ASP.NET Core 缓存与分布式缓存 ASP.NET Core 里面有很多定义标准接口,例如日志、缓存等,这些接口为开发者设置了统一定义和功能,上层服务不需要变更代码就能切换类库,底层使用哪种库对上层没有影响...在内存中缓存、存储数据 在 ASP.NET Core 内存缓存之外,我们来讨论一下,编写代码时,自己设置内存缓存是否合理。 我们都知道,使用内存缓存是为了提高代码性能而用

    2.1K20

    ASP.NET Core中缓存:如何在一个ASP.NET Core应用中使用缓存

    IMemoryCache接口所有类型以及对应对象统称。...如果我们在一个ASP.NET Core应用对MemoryCache服务在启动时做了注册,我们就可以在任何地方获取该服务对象设置和获取缓存数据,所以针对缓存编程是非常简单。...修改应用启动(确保Redis服务器被正常启动),如果我们利用浏览器来访问它,依然会得到与前面类似的输出。...,我们仅仅是为响应添加了一个Cache-Control报头,并将它设置为“public, max-age=3600”(public表示缓存是可以被所有用户共享公共数据,而max-age则表示过去时限...并没有携带“utc”查询字符串,所以返回是一个非UTC时间,接下来我们采用相同方式生成一个试图返回UTC时间请求。

    2.5K110
    领券