在实例之间共享缓存

问题描述:

我有一个应用程序,并为它缓存了几个数据(.net缓存)。通常这个应用程序使用2或3个实例运行。在实例之间共享缓存

每当创建新的实例来处理请求时,内存使用量就会变成两倍。我想知道如果每个新的实例创建它自己的缓存。

这是真的吗?如果是,有没有办法在同一个应用程序的实例之间共享缓存?

在此先感谢您分享宝贵的知识!

编辑:

C#语言 请参阅下面的例子中,我们如何缓存:

System.Web.HttpContext ctx 
      = System.Web.HttpContext.Current; 
    ctx.Cache.Insert("siteViewModel", siteViewModel, null, 
DateTime.Now.AddHours(Int32.Parse(siteViewModel.ApplicationSettings["dtoCacheDurationHours"])), System.Web.Caching.Cache.NoSlidingExpiration, 
       System.Web.Caching.CacheItemPriority.Default, OnCachedItemRemoved); 
+0

我们有类似的要求,但我不知道这是否是适合您的情况,但我们使用Web服务来缓存数据(与安全机制),还有其他的选择比如直接访问一个memcache服务器(这是我们web服务的后面)或类似的东西,或者保持简单并使用应用程序变量?您能否提供更多关于架构及其使用环境的信息? – 2013-04-25 15:13:48

+0

你称之为“实例”是什么?您的应用程序是否以webfarm模式运行? – tucaz 2013-04-25 17:49:06

我还没有玩过这在所有的,但我明白,AppFabric offers distributed caching features。您可能想查看some exampleslike this one

首先我需要告诉你不能在多个实例之间使用缓存。 您还可以使用Windows Azure缓存系统在整个应用程序中共享缓存,并且可以使用RESTful方式轻松使用它。

您还可以针对您的方案评估Microsoft Velocity。 Velocity将为您提供分布式和内存缓存。

链接: Build Better Data-Driven Apps With Distributed Caching