针对.net的内存中对象缓存的建议

时间:2010-07-15 08:41:47

标签: .net asp.net caching memcached

我想知道人们对.net的内存缓存解决方案的体验是什么。

我们需要一个(理想上免费的)进程外缓存解决方案,我们可以在许多不同的网站(不同的应用程序池)之间共享,还有一些定期运行的控制台应用程序。

到目前为止,我们已经尝试了一些解决方案,这两种解决方案都很好但却引发了一些问题,这些问题使得它们不太适合生产:

1)使用.net客户端的win32 Memcached

我们的第一个解决方案是使用memcached(http://jehiah.cz/projects/memcached-win32/)的win32端口和.net客户端库(http://sourceforge.net/projects/memcacheddotnet/)。

很好,并且暂时没有问题,但后来我们开始看到很多无法解释的错误 - 客户端库无法写入缓存。不确定这是memcached的win32端口或客户端库的问题,但我对使用相同解决方案的其他人缺乏可见性感到不舒服,并寻找纯粹的.net解决方案,这导致我...

2)SharedCache

看起来不错,在社区中似乎很受欢迎。设置非常简单,并提供比我们以前的解决方案更多的功能(例如,获取所有缓存对象列表的能力)。这看起来是一个非常好的解决方案,但我们最近开始看到一些问题蔓延:

  • 内存消耗,有一个问题就是它没有很好地释放内存,即使我们只持有30M的缓存数据,服务仍在使用700M
  • 偶尔尝试从缓存中检索对象的CacheExceptions(特别是对于较大的缓存对象)

所以这两种解决方案都没有。我很想知道其他人正在采用什么解决方案。有关信息,我们的服务器设置目前只有32位窗口框,因此我们没有选择专用的linux memcached服务器。

2 个答案:

答案 0 :(得分:1)

Microsoft的艺术家以前称为 Velocity ,现在附带Windows Server AppFabric

答案 1 :(得分:0)

所以最后虽然appfabric看起来很有前景,但对于我们需要的东西来说似乎太多了,并且使用起来非常棘手,所以我们坚持使用sharedcache,内存消耗对我们来说是可管理的..

我想企业上的大多数人都是NCache ..