在实例之间共享缓存
问题描述:
我有一个应用程序,并为它缓存了几个数据(.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);
答
首先我需要告诉你不能在多个实例之间使用缓存。 您还可以使用Windows Azure缓存系统在整个应用程序中共享缓存,并且可以使用RESTful方式轻松使用它。
答
您还可以针对您的方案评估Microsoft Velocity。 Velocity将为您提供分布式和内存缓存。
我们有类似的要求,但我不知道这是否是适合您的情况,但我们使用Web服务来缓存数据(与安全机制),还有其他的选择比如直接访问一个memcache服务器(这是我们web服务的后面)或类似的东西,或者保持简单并使用应用程序变量?您能否提供更多关于架构及其使用环境的信息? – 2013-04-25 15:13:48
你称之为“实例”是什么?您的应用程序是否以webfarm模式运行? – tucaz 2013-04-25 17:49:06