问题标签 [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.
.net - 使用 WCF 将对象发送到托管 MemoryCache 的服务
我正在修补 WCF 和 MemoryCache。目标是在 Windows 服务中托管 WCF,以便不同的客户端可以访问此缓存。
第一部分,设置主机工作正常,我可以通过单独的客户端应用程序写入和读取缓存。至少,当尝试将非常简单的对象放入缓存中时,例如字符串或值类型(例如 int)。
当我尝试一个“自定义”对象时,即使它只有一个字符串属性,事情也会开始出错:
现在经过一番搜索,我发现我可能不得不用 KnownType 属性来装饰我的类型,但可惜没有成功。我还尝试使用 DataContract 和 DataMember 属性来装饰它,但也没有 sigar。
现在做什么?WCF DataContractResolver 不应该为我完成这项工作吗?我很难相信我必须为我想要序列化的每个类编写一个自定义 DataContractResolver。DataContract 和 DataMember 属性还有什么用途?
我在这里想念什么?另请注意,MyType 不会从另一个类(保存对象)继承。
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
asp.net - 将 MemoryCache 与 HostFileChangeMonitor init 一起使用到目录会得到 ArgumentOutOfRangeException
我正在使用 .NET 4 的 System.Runtime.Caching 中的 MemoryCache,并且我希望在目录更改时使缓存条目无效。
HostFileChangeMonitor 应该同时处理文件和目录,所以我像这样添加它:
但后来我得到一个例外:
仅当我在 ASP.NET 网站中使用代码时才会发生这种情况。它可以在控制台应用程序内部正常工作。
我在 ms connect 上找到了这个,但是我添加到 HostFileChangeMonitor 的目录存在。
谢谢你的帮助。
c# - 我的 WCF 服务的 ObjectCache 或本地字段?
我有一个服务,我想在其上实现某种缓存,但我不确定我是否应该使用 .NET 4 的 ObjectCache 或者只是在服务上设置私有字段,一段时间后会刷新。
情况如下: 服务用于返回大块数据。目前,我们在数据库中查找对服务的每个请求的数据。此数据仅在每天午夜刷新一次。我想在服务上缓存这些数据,并在数据库更新后每晚刷新它(比如上午 12:30 左右)。
现在,在过去,我们将填充本地字段并创建一个“监控线程”,该线程将持续运行并在指定的时间后重新填充这些字段。我看到的一个缺点是服务类中有一些额外的代码用于存储。
如果我切换到 ObjectCache,一个好处是过期时自动删除。我想做的是为 CacheEntryRemovedCallback 委托分配一个回调方法,当它被调用时,只需在将来的某个时间重新缓存数据(刷新数据库后大约 30 分钟)。
我的问题是,对于 WCF 服务,缓存数据更理想的选择是什么?
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
c# - MemoryCache AbsoluteExpiration 行为奇怪
我正在尝试使用MemoryCache
.net 4.5 中的 a 来跟踪并自动更新各种项目,但似乎无论我设置什么,AbsoluteExpiration
它总是只会在 15 秒或更长时间内过期。
我希望缓存项每 5 秒过期一次,但它总是在至少 15 秒后过期,如果我将过期时间移出,它最终会是 15 秒 + 我的刷新间隔,但绝不会少于 15 秒.
是否有一些我没有看到的内部计时器分辨率?我查看了一些反映的System.Runtime.Caching.MemoryCache
代码,但没有什么特别突出的,而且我无法在互联网上找到其他有此问题的人。
我在下面有一个非常基本的例子来说明这个问题。
我想要的是CacheEntryUpdate
每 5 秒左右被击中一次并用新数据更新,但是,正如我所说,它只会在 15 秒内被击中。
c# - 如何投射字典到字典
我正在使用 default MemoryCache
,它可以很好地满足我的目的。但是该GetValues()
方法返回IDictionary<string, object>
有没有一种快速的方法可以将其转换为IDictionary<string, MyType>
?
c# - 如何找到 MemoryCache 的大小,最好以编程方式?
我想找到 a 的大小MemoryCache
。
我想实现该FindSize()
方法。
.net - .Net MemoryCache - 如何更新现有项目的到期时间?
Memcached API 有一个 Touch() 方法,用于更新给定键的过期策略。如何使用 .Net ObjectCache 类最好地完成此任务?
我能看到的最好的方法是删除对象并重新添加一个新的过期时间,但显然这是次优性能。
.net - 在不停止服务的情况下如何清除正在运行的 Windows 服务的 System.Runtime.Caching.MemoryCache?
我有一项服务,我想在其中使用 MemoryCache,但是,我的要求之一是我需要能够手动清除所述 MemoryCache,而无需停止服务。
目前我们正在使用企业库中的 CacheManager(使用独立存储,所以我认为它在内存中,然后在需要时转储到文件),我们通过删除文件手动清除缓存。关于如何使用新的缓存库做类似事情的任何想法?
谢谢!