如何登录多个用户的缓存重置

时间:2016-06-27 16:52:04

标签: asp.net-mvc iis

我在ASP.net Mvc应用程序中使用了缓存,例如 - [OutputCache(Duration = 300,Location = Server)]

假设有多个用户登录并且缓存对象已被充实。现在,如果新用户登录,那么缓存对象会发生什么?系统会变慢吗?或IIS将在内部处理这种情况?

1 个答案:

答案 0 :(得分:1)

编辑:从OP澄清后,OutputCache因userid而异,所以我的原始答案对于这种情况无效。你可以在下面看到它。

如果通过登录的用户标识更改了OutputCache,则会为每个用户在缓存中保留一个单独的对象。流程如下:

用户A点击应用程序,结果被缓存,并且他会在下次5分钟内点击它时看到它。

如果用户B点击应用程序,无论其他用户的缓存对象如何,操作都将执行,结果将再次缓存。

在输出包含因登录用户而异的内容的情况下,您的解决方案非常正常。点击应用程序的新用户不会以任何方式影响缓存中的现有对象。

无论用户是谁,操作的输出都会缓存5分钟。

因此,如果用户A首先点击应用程序,则会执行操作并缓存结果。

然后用户B点击它(在5分钟内),服务器为他们提供缓存版本。