首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Net简单内存缓存

.Net简单内存缓存
EN

Stack Overflow用户
提问于 2012-06-11 13:28:31
回答 4查看 4.1K关注 0票数 8

简单地说,在.Net生态系统中存在哪些简单的内存缓存?

我要找的是:

  • 没有配置(除了简单的API调用)。我不想搞乱外部配置文件,因为它们只是复杂的部署。
  • 相同-进程(不是某些外部进程或服务器)。更容易被创造出来 var myCache = new SimpleCache(1024 * 1024 * 100); // 100 MB
  • 指定内存限制
  • 基于最少使用率从缓存中清除的项
  • 基于时间的过期(不需要,但使其在其他情况下可能有用)
  • 与.Net 3.5一起工作

我已经重申了这些选择:

  • ASP.Net System.Web.Caching
    • 它的API不支持对缓存大小的任何控制,也不支持基于使用的优先级。因此,当它决定有足够的内存压力来清空缓存时,您将完全听天由命。

  • System.Runtime.Caching

  • 缓存块
    • 除了享有重量级的声誉外,我不喜欢使用XML文件或app.config进行配置。此外,虽然它支持根据存储对象的数量限制缓存的大小,但它没有限制这些对象大小的机制。

  • NCache
    • 对于我想要的用例来说,这可能有点过分了,但最重要的是,它是一种付费产品,而不是我想要处理的事情(与我在一两天内只写一件东西相比)。和往常一样,它的速成版也有使用限制,阻碍了它在任何生产中的使用。

  • MemCacheD
    • 与我想要的完全相反(外部分布式进程)

我正在使用Google缓冲器(Protobuf),所以我对每一项的内存占用都有一个相对准确的估计。我正在缓存从数据库访问中返回的数据,但我不想使用正式的ORM (我实际上使用的是PetaPoco,但这不是重点)。

在这一阶段,我计划实现自己的缓存,使用双链接列表和散列(字典),以便在达到缓存限制后删除最近从缓存中最少使用的项。然而,我想看看是否有人知道任何合适的选择,然后我自己。

EN

回答 4

Stack Overflow用户

发布于 2012-08-30 20:03:50

那你最后拿这个缓存做了什么?

我有一个Universal的原型,它可以实现您想要的功能,除了缓存限制是根据容量(条目数量)而不是内存使用情况,但是它还有一个您可能会欣赏的特性:本地持久性。

缓存是按层结构的,其中可以有一个单层:内存,双层:内存+本地持久性,或三层:内存+本地持久性+网络共享。您可以根据需要使用任何层的组合。尽管设计为.net远程服务的网络共享可以安装在网络上的任何计算机上,并且可以由客户端缓存自我发现,但目前还没有完全发挥作用。

缓存是通过接口ICache访问的泛型类。本地持久缓存使用SQL Compact4创建动态数据库和表,这些数据库和表包含TKey的所有字段、时间戳和序列化为图像列的TValue。在多层配置的情况下,当您在顶级缓存上使用TryGetValue( TKey key,out TValue值)方法时,如果第一层(内存缓存)没有它与下一层(本地持久的)内部检查的项,那么下一层.直到没有更多的缓存来提供数据为止。当内存缓存丢弃一个项时,它允许下一个缓存将该项添加到其层,以便在持久缓存的情况下将数据存储在以后的请求中。

这些缓存有一个使用定义的保留时间参数(即内存缓存的几分钟,本地持久缓存的30天)和容量。

如果有人感兴趣的话,我可以把它作为公共领域代码发布。

票数 3
EN

Stack Overflow用户

发布于 2012-06-11 21:22:29

AppFabric for Windows中的缓存特性如何?试试看!http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspxhttp://msdn.microsoft.com/en-us/library/hh334364.aspx

但是,如果市场上没有提供所需行为的产品,则必须使用Design实现您自己的自定义缓存层。

票数 1
EN

Stack Overflow用户

发布于 2012-06-11 22:13:10

它已经很旧了,但我很像你所说的。

具有内存消耗的通用缓存

这里还有一个相关的场景:

系统运行时缓存的性能

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10981069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档