ASP.NET会话缓存 - 单个项目到期

时间:2012-02-23 14:42:13

标签: asp.net session caching

为什么在将项目添加到Session对象时无法设置个人到期时间?

使用Cache.Add(),您可以设置绝对到期时间和滑动到期时间。为什么不能使用Session

执行此操作

1 个答案:

答案 0 :(得分:5)

会话不是缓存。 Session是一种克服Web通信无状态这一事实的方法。每个会话设置一个“桶”,因此您可以绑定到会话。当用户的会话超时时(通常在他的最后一页命中后20分钟),它会超时。

如果您需要某些东西过期,即使是每个用户,也需要使用缓存而不是会话。您可以使用自动糖,并因用户而异。或者,您可以在其中一个.NET缓存对象之上构建自己的自定义抽象(我使用MemoryCache进行本地缓存)。虽然我不是很快就会说“使用自定义代码”,但如果网站在用户中不断增长,那么缓存会带来好处,因为有一天你可以转向分布式缓存,例如AppFabric缓存,nCache(非常友好)或memcached