我不明白应该使用哪个容器来存储缓存:
HttpContext.Current.Session
还是MemoryCache
?
存储在HttpContext.Current.Session
中的数据和MemoryCache
有什么区别?
为特定用户存储数据时,您可以使用 HttpContext.Current.Session
内存缓存是当您为所有用户存储数据时,数据在所有用户之间共享
你唯一的问题是:Session
和Cache
之间的区别......好吧Session
特定于帐户或用户帐户(每个用户特定访问权限都是会话的一部分(,而Cache
是应用程序的全局。您只存储将在整个应用程序中使用的通用数据,而不考虑cache
中的用户会话。现在,您的缓存存储可能是持久的(如果您选择存储在数据库或分布式缓存中,例如Redis
或Azure memcache
/非持久性 ASP.NET HttpContext.Cache
例如将缓存对象存储在工作进程中的对象w3wp
...因此,如果工作进程通过回收应用程序池而死亡,则会丢失缓存对象(
此外,通过会话,如果要跨所有Web服务器(在负载平衡环境中(访问会话,则应考虑使用Pooled Session