memorycache相关内容

MemoryCache 范围是会话还是应用程序范围?

我在 ASP.NET 中使用 MemoryCache 并且运行良好.我有一个对象缓存了一个小时,以防止从存储库中提取新的数据. 我可以看到缓存在调试中工作,而且一旦部署到服务器,在第一次调用并缓存对象后,后续调用的时间约为 1/5. 但是我注意到每个 新 客户端调用(仍然在 1 小时窗口内 - 实际上只是一两分钟后)似乎对我的服务进行了第一个调用(正在执行缓存)几乎与缓存数据之前的原始 ..
发布时间:2021-12-20 11:43:14 C#/.NET

MemoryCache 不遵守配置中的内存限制

我正在使用 .NET 4.0 MemoryCache 类并试图限制最大缓存大小,但在我的测试中,缓存似乎并未实际遵守限制. 我使用的设置,根据MSDN,应该限制缓存大小: CacheMemoryLimitMegabytes:对象实例可以增长到的最大内存大小(以兆字节为单位)." PhysicalMemoryLimitPercentage: "缓存可以使用的物理内存的百分比,表示为1到 ..
发布时间:2021-12-20 11:04:24 C#/.NET

MemoryCache Empty : 设置后返回 null

我在使用新的 .NET 4 System.Runtime.Caching MemoryCache 的 MVC 3 应用程序中遇到问题.我注意到,在一段看似不可预测的时间之后,它会停止缓存内容,并且表现得好像它是空的.考虑一下我直接从 ASP.NET MVC 中的测试视图中获取的这段代码: MemoryCache.Default.Set("myname","fred", new CacheItem ..
发布时间:2021-12-20 11:01:52 C#/.NET

MemoryCache 线程安全,有必要加锁吗?

对于初学者,让我把它扔到那里,我知道下面的代码不是线程安全的(更正:可能是).我正在努力寻找一种实现,我实际上可以在测试中失败.我现在正在重构一个大型 WCF 项目,该项目需要缓存一些(主要是)静态数据并从 SQL 数据库填充它.它需要每天至少过期和“刷新"一次,这就是我使用 MemoryCache 的原因. 我知道下面的代码不应该是线程安全的,但我不能让它在重负载下失败并使事情复杂化,谷歌 ..
发布时间:2021-12-13 20:04:14 C#/.NET

.Net Core MemoryCache PostEvictionCallback 无法正常工作

我在 Microsoft.Extensions.Caching.Memory.MemoryCache 中设置了具有滑动到期时间的缓存项.我想在每次缓存项过期时触发回调,但直到我查询缓存中的过期缓存项时才会触发回调. 代码如下: 使用系统;使用 Microsoft.Extensions.Caching.Memory;命名空间内存缓存{公开课计划{私有静态 MemoryCache _cache ..
发布时间:2021-12-10 19:45:18 C#/.NET

使用多个 MemoryCache 实例

我想使用 System.Runtime.Caching 命名空间向我的应用程序添加缓存功能,并且可能希望在多个位置和不同上下文中使用缓存.为此,我想使用多个 MemoryCache 实例. 但是,我看到这里不鼓励使用多个 MemoryCache 实例: MemoryCache 不是单例,但您应该只创建几个或可能只创建一个 MemoryCache 实例,并且缓存项目的代码应该使用这些实例 ..
发布时间:2021-11-26 10:46:05 C#/.NET

如何清除内存缓存?

我使用 MemoryCache 类创建了一个缓存.我向其中添加了一些项目,但是当我需要重新加载缓存时,我想先清除它.执行此操作的最快方法是什么?我应该遍历所有项目并一次删除一个还是有更好的方法? 解决方案 Dispose 现有的 MemoryCache 并创建一个新的 MemoryCache 对象. ..
发布时间:2021-11-26 10:32:59 C#/.NET

dotnet 核心中的内存缓存

我正在尝试编写一个类来处理 .net 核心类库中的内存缓存.如果我不使用核心,那么我可以写 使用 System.Runtime.Caching;使用 System.Collections.Concurrent;命名空间 n{公共类 MyCache{只读 MemoryCache _cache;readonly Func_cachePolicy;static readonly ConcurrentD ..
发布时间:2021-11-24 15:17:09 C#/.NET

访问MemoryCache是​​否会创建副本?

我有这样的缓存服务: 公共接口ICacheService {T Get(字符串cacheID,Func getItemCallback,int cacheMinutes = 5),其中T:类;}公共类MemoryCacheService:ICacheService {public T Get(string cacheId, Func getItemCallback, int ca ..
发布时间:2021-05-29 21:45:33 C#/.NET

当达到大小限制时,为什么需要在我的大小限制的MemoryCache上调用两次Set?

我们将使用ASP.NET Core的内置内存缓存解决方案来缓存外部系统响应.(稍后我们可能会从内存转移到 IDistributedCache .) 我们要使用 Mircosoft.Extensions.Caching.Memory 's IMemoryCache 作为在中构建并调试了单元测试,并在 MemoryCache在后台触发压缩.这将逐出最早的(MRU)缓存条目,直到已在完整高速缓存的代码 ..
发布时间:2021-04-11 18:44:09 C#/.NET

在MemoryCache调用中停止重入

应用程序需要加载数据并缓存一段时间.我希望,如果应用程序的多个部分希望同时访问相同的缓存键,则缓存应该足够聪明,以仅加载一次数据并将该调用的结果返回给所有调用者.但是, MemoryCache 没有这样做.如果并行命中缓存(这在应用程序中经常发生),则每次获取缓存值的尝试都会创建一个任务.我以为这段代码可以达到预期的效果,但是没有达到目的.我希望缓存仅运行一个 GetDataAsync 任务,等待 ..
发布时间:2021-04-01 20:05:30 其他开发

当设置SizeLimit时,意外的“缓存条目必须为Size指定一个值".在AspNetCore 3中的消息

因此,在今天更新到AspNetCore 3之前,一切都很好. 我正在使用具有依赖项注入(IMemoryCache cache)的内存缓存. 我使用services.AddMemoryCache(); 将其添加到我的中间件中,但没有设置大小,但最终还是出现错误消息: 设置SizeLimit时,缓存条目必须为Size指定一个值. 当我检查MemoryCache的实例时,确实确实 ..
发布时间:2020-09-09 01:40:20 其他开发

如何清除ASP.NET Core中的MemoryCache?

如何从ASP.NET Core正确清除IMemoryCache? 我相信此类缺少Clear方法,但是无论如何该如何处理?在我的项目中,我将DocumentRepository的方法缓存了24小时,从数据库中获得了很多行.但是有时候我可以更改数据库,所以我想清除IMemoryCache,因为它有垃圾数据. 解决方案 要清除您的MemoryCache,只需按键删除您的内存缓存,就像这样: ..
发布时间:2020-06-30 20:14:22 C#/.NET

在此之前的操作完成之前,在此上下文中开始了第二次操作

我有一个具有asp.net核心和实体框架核心的项目,出于性能原因,我使用MemoryCache. ForumQueryManager类用于查询论坛数据,而该类数据用于使用CacheManager的Get方法以及传递cachekey和timeout的缓存时间,以及一种用于确定何时缓存为空以从数据库中检索数据的方法.此代码几乎总是可以工作.但有时会抛出异常 例外: 处理请求时发生未处理的异 ..
发布时间:2020-06-30 20:14:18 其他开发

如何使用Timer插入的MemoryCache触发方法?

以下方法通过等待已经运行的操作的结果来处理并发请求. 对数据的请求可能同时具有相同/不同的凭据.对于每组唯一的凭据,最多只能进行一个GetCurrentInternal调用,并且该调用的结果将在准备就绪时返回给所有排队的服务员. private readonly ConcurrentDictionary> _dataToCredentia ..
发布时间:2020-06-30 20:14:16 C#/.NET