问题标签 [memorycache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
525 浏览

.net - 使用 WCF 将对象发送到托管 MemoryCache 的服务

我正在修补 WCF 和 MemoryCache。目标是在 Windows 服务中托管 WCF,以便不同的客户端可以访问此缓存。

第一部分,设置主机工作正常,我可以通过单独的客户端应用程序写入和读取缓存。至少,当尝试将非常简单的对象放入缓存中时,例如字符串或值类型(例如 int)。

当我尝试一个“自定义”对象时,即使它只有一个字符串属性,事情也会开始出错:

现在经过一番搜索,我发现我可能不得不用 KnownType 属性来装饰我的类型,但可惜没有成功。我还尝试使用 DataContract 和 DataMember 属性来装饰它,但也没有 sigar。

现在做什么?WCF DataContractResolver 不应该为我完成这项工作吗?我很难相信我必须为我想要序列化的每个类编写一个自定义 DataContractResolver。DataContract 和 DataMember 属性还有什么用途?

我在这里想念什么?另请注意,MyType 不会从另一个类(保存对象)继承。

0 投票
4 回答
27559 浏览

c# - Memory Cache .Net 4.0 性能测试:惊人的结果

这个性能测试是错误的还是系统缓存正在以异常的性能工作?

这是我的结果:
[13] 交互次数 100000:63 毫秒
[14] 交互次数 100000:139 毫秒
[12] 交互次数 100000:47 毫秒
[15] 交互次数 100000:44 毫秒
测试结束。

硬件:x86 Family 6 Model 23 Stepping GenuineIntel ~2992 Mhz 3.327 MB, 5.1.2600 Service Pack 3

0 投票
2 回答
2349 浏览

asp.net - 将 MemoryCache 与 HostFileChangeMonitor init 一起使用到目录会得到 ArgumentOutOfRangeException

我正在使用 .NET 4 的 System.Runtime.Caching 中的 MemoryCache,并且我希望在目录更改时使缓存条目无效。

HostFileChangeMonitor 应该同时处理文件和目录,所以我像这样添加它:

但后来我得到一个例外:

仅当我在 ASP.NET 网站中使用代码时才会发生这种情况。它可以在控制台应用程序内部正常工作。

我在 ms connect 上找到了这个,但是我添加到 HostFileChangeMonitor 的目录存在。

谢谢你的帮助。

0 投票
1 回答
554 浏览

c# - 我的 WCF 服务的 ObjectCache 或本地字段?

我有一个服务,我想在其上实现某种缓存,但我不确定我是否应该使用 .NET 4 的 ObjectCache 或者只是在服务上设置私有字段,一段时间后会刷新。

情况如下: 服务用于返回大块数据。目前,我们在数据库中查找对服务的每个请求的数据。此数据仅在每天午夜刷新一次。我想在服务上缓存这些数据,并在数据库更新后每晚刷新它(比如上午 12:30 左右)。

现在,在过去,我们将填充本地字段并创建一个“监控线程”,该线程将持续运行并在指定的时间后重新填充这些字段。我看到的一个缺点是服务类中有一些额外的代码用于存储。

如果我切换到 ObjectCache,一个好处是过期时自动删除。我想做的是为 CacheEntryRemovedCallback 委托分配一个回调方法,当它被调用时,只需在将来的某个时间重新缓存数据(刷新数据库后大约 30 分钟)。

我的问题是,对于 WCF 服务,缓存数据更理想的选择是什么?

0 投票
1 回答
1560 浏览

c# - MemoryCache 神奇地进入 Disposed 状态

我做了很多测试,我的 MemoryCache 实例在一段时间后被释放,当我调用 Get 方法时总是返回 null。我认为那是在 PollingInterval 之后。

为了模拟,您可以启动一个新的 webapp 并编写以下代码:

我将 PollingInterval 配置为 30 小时,似乎可行。

我认为可能是 AppDomain Unload,但经过一番调查,我认为不是这样:

1-) MSDN 说要为 ASP.NET 使用 MemoryCache:http: //msdn.microsoft.com/en-us/library/ff477235 (v=vs.100).aspx 并说 ASP.NET 4 缓存是用对象缓存:

在 ASP.NET 4 中,缓存是通过使用 ObjectCache 类实现的。

2-) AppDomain 卸载将重置静态变量,创建新的 MemoryCache 实例。

3-) 我像 MemoryCache 一样在 AppDomain Unload 上附加了一个事件(我看到了反编译的源代码),在我的测试中它没有被调用并且 memorycache 被处理掉了。

参考:

MSDN 论坛上的相同帖子:http: //social.msdn.microsoft.com/Forums/en/netfxbcl/thread/1233ffb3-6480-431b-94ca-1190f96cf5f6

http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/0a666d5e-9bda-47bd-8dd3-98d32eb5fe60

MemoryCache Empty :设置后返回 null

System.Runtime.Caching.MemoryCache 奇怪的行为?

添加对象后,MemoryCache 为空

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

0 投票
4 回答
38354 浏览

c# - MemoryCache AbsoluteExpiration 行为奇怪

我正在尝试使用MemoryCache.net 4.5 中的 a 来跟踪并自动更新各种项目,但似乎无论我设置什么,AbsoluteExpiration它总是只会在 15 秒或更长时间内过期。

我希望缓存项每 5 秒过期一次,但它总是在至少 15 秒后过期,如果我将过期时间移出,它最终会是 15 秒 + 我的刷新间隔,但绝不会少于 15 秒.

是否有一些我没有看到的内部计时器分辨率?我查看了一些反映的System.Runtime.Caching.MemoryCache代码,但没有什么特别突出的,而且我无法在互联网上找到其他有此问题的人。

我在下面有一个非常基本的例子来说明这个问题。

我想要的是CacheEntryUpdate每 5 秒左右被击中一次并用新数据更新,但是,正如我所说,它只会在 15 秒内被击中。

0 投票
3 回答
608 浏览

c# - 如何投射字典到字典

我正在使用 default MemoryCache,它可以很好地满足我的目的。但是该GetValues()方法返回IDictionary<string, object>

有没有一种快速的方法可以将其转换为IDictionary<string, MyType>?

0 投票
2 回答
3134 浏览

c# - 如何找到 MemoryCache 的大小,最好以编程方式?

我想找到 a 的大小MemoryCache

我想实现该FindSize()方法。

0 投票
1 回答
554 浏览

.net - .Net MemoryCache - 如何更新现有项目的到期时间?

Memcached API 有一个 Touch() 方法,用于更新给定键的过期策略。如何使用 .Net ObjectCache 类最好地完成此任务?

我能看到的最好的方法是删除对象并重新添加一个新的过期时间,但显然这是次优性能。

0 投票
2 回答
2001 浏览

.net - 在不停止服务的情况下如何清除正在运行的 Windows 服务的 System.Runtime.Caching.MemoryCache?

我有一项服务,我想在其中使用 MemoryCache,但是,我的要求之一是我需要能够手动清除所述 MemoryCache,而无需停止服务。

目前我们正在使用企业库中的 CacheManager(使用独立存储,所以我认为它在内存中,然后在需要时转储到文件),我们通过删除文件手动清除缓存。关于如何使用新的缓存库做类似事情的任何想法?

谢谢!