ASP.NET - 多个Web应用程序 - 共享缓存对象

RuS*_*uSh 7 .net asp.net memcached caching redis

我正在开发asp.net 4 web项目,该项目是用3个子项目构建的:

  • Site.Admin - 管理员网站 - ASP.NET项目
  • Site.Core - DB&BL - C#Library
  • Site.Web - 前端网站. - ASP.NET项目

该项目托管在32位单一Windows服务器上

我目前正在使用ASP.NET Cache(HttpRuntime.Cache)来缓存对象,但问题是我无法在前端和管理网站之间共享缓存.

从阅读StackOverflow和其他帖子,我知道存在以下选项:

  1. Memcached - 没有稳定的Windows版本?
  2. Couchbase - 没有免费版本?overkill取代asp.net缓存?
  3. AppFabric中
  4. Redis - 没有稳定的Windows版本?

我正在寻找一个免费/非付费的解决方案来取代asp.net缓存.

我想得到一些意见:

  1. Windows安装兼容性

  2. 性能

  3. 易于使用(替换现有的缓存代码)和.NET API.

  4. 其他选择?

Aag*_*age 3

我也遇到过同样的问题,我们选择了 AppFabric。我们需要在同一服务器上的两个 Web 应用程序之间共享缓存。

AppFabric 非常容易安装在 Windows 计算机上,并且很容易用对 AppFabric 的调用来替换对运行时缓存的调用。然而,决定如何计划使用此缓存或使用多少次非常重要。

在客户的项目中,我们需要在旧应用程序旁边构建一个额外的应用程序,但不知道该旧应用程序处理了运行时缓存多少次。显然,这一点在切换到 AppFabric后才变得明显,缓存根本没有得到正确使用。现在这变得非常明显,因为对 AppFabric 的调用比将对象放入运行时缓存中要慢得多(AppFabric 使用 WCF 与 Web 应用程序通信,其中运行时缓存直接将对象放入内存中)。AppFabric 并不慢,但它比运行时缓存慢得多,因此请明智地使用。

但是这个遗留应用程序对缓存进行了数千次调用(是的,我知道)。因此,只需进行几次测试,看看这是否适合您的情况。