我在ASP.net Mvc应用程序中使用了缓存,例如 - [OutputCache(Duration = 300,Location = Server)]
假设有多个用户登录并且缓存对象已被充实。现在,如果新用户登录,那么缓存对象会发生什么?系统会变慢吗?或IIS将在内部处理这种情况?
答案 0 :(得分:1)
编辑:从OP澄清后,OutputCache因userid而异,所以我的原始答案对于这种情况无效。你可以在下面看到它。
如果通过登录的用户标识更改了OutputCache,则会为每个用户在缓存中保留一个单独的对象。流程如下:
用户A点击应用程序,结果被缓存,并且他会在下次5分钟内点击它时看到它。
如果用户B点击应用程序,无论其他用户的缓存对象如何,操作都将执行,结果将再次缓存。
在输出包含因登录用户而异的内容的情况下,您的解决方案非常正常。点击应用程序的新用户不会以任何方式影响缓存中的现有对象。
无论用户是谁,操作的输出都会缓存5分钟。
因此,如果用户A首先点击应用程序,则会执行操作并缓存结果。
然后用户B点击它(在5分钟内),服务器为他们提供缓存版本。