我们的生产Web服务器有一台运行Windows Server 2003的服务器。我们的网站具有不同的模块,每个模块都在其自己的应用程序池中运行。由于每个模块都有自己的缓存,而且经常有多个模块缓存相同的项目,因此这使缓存有点问题。问题是,当在一个模块中更改了缓存中的项目时,无法轻松地刷新缓存同一项目的另一个模块。
我们的网站是用ASP.NET 4.0编写的,我们使用标准的HttpRuntime.Cache对象作为简单的键/值存储来缓存数据集,业务对象,集合,列表等。我们不使用任何文件依赖项,但使用时间到期。我们一次只有大约400个用户,因此我们并没有做任何太疯狂的事情。
听起来像某种共享/分布式缓存将有助于解决此问题,但是我不确定要使用哪个缓存还是最好自行发行,因为我们不需要大多数产品中的许多功能我见过。我已经看到了一些使用WCF的示例,但是大多数人建议不要在生产中使用它们的示例,而且我对WCF知之甚少。
我正在寻找一种简单,快速,轻巧,可以在生产环境中安全运行的东西,如果可能的话,最好是免费的,但这不是必须的。它需要在Windows Server 2003上运行并与ASP.NET 4.0一起使用。
有任何建议或信息吗?
与ASP.NET提供程序一起使用memcached是一种流行的选择。请记住,尽管在.NET 4.0中建议进行缓存的方法是使用新的ObjectCache而不是HttpRuntime.Cache。.NET框架(MemoryCache)有一个内置的内存实现,您也可以签出memcached的实现。
HttpRuntime.Cache