哪里存储缓存数据在asp.net web应用程序中?

时间:2017-05-10 09:13:45

标签: c# asp.net

我无法理解我应该使用哪个容器来存储缓存:

HttpContext.Current.SessionMemoryCache

HttpContext.Current.SessionMemoryCache中存储的数据有何区别?

2 个答案:

答案 0 :(得分:2)

当您为特定用户存储数据时,您可以使用HttpContext.Current.Session

MemoryCache是​​为所有用户存储数据时,数据在所有用户之间共享

答案 1 :(得分:1)

您唯一的问题是:SessionCache之间的差异......以及Session特定于帐户或用户帐户(每个用户特定访问权限都是会话的一部分)而{{{ 1}}是应用程序的全局。您只存储将在整个应用程序中使用的公共数据,而不管Cache中的用户会话。现在再次,您的缓存存储可以是持久的(如果您选择存储在数据库或分布式缓存中,如cacheRedis /非持久性,如存储缓存的ASP.NET Azure memcache对象工作进程HttpContext.Cache中的对象...因此,如果工作进程通过回收应用程序池而死亡,则会丢失缓存对象)

此外,通过会话,如果要在所有Web服务器上访问会话(在负载平衡环境中),那么您应该考虑使用w3wp