system.web.caching - 缓存维护的级别是多少?

时间:2011-10-10 16:45:55

标签: asp.net caching

我正在考虑在.net Web App中实现缓存。基本上......我希望缓存一些在每个页面上拉入的数据,但不会在数据库上进行更改。

我的缓存元素对每个元素都是唯一的:

  • 会话?
  • App Pool?
  • 服务器?

如果是会话,如果成千上万的人访问我的网站并且每个缓存大约是5k,这可能会失控。

如果是App Pool,并且我有一个站点运行的多个实例(比如使用不同的DB后端,但是所有服务器都在一台服务器上),那么我需要为每个实例提供单独的App Pool。

任何帮助都会受到赞赏...我认为这些数据可能就在那里我只是没有正确的谷歌组合来推动它。

2 个答案:

答案 0 :(得分:2)

“每个应用程序域创建此类的一个实例,只要应用程序域保持活动状态,它就仍然有效” - MSDN

答案 1 :(得分:2)

默认情况下,它存储在服务器的内存中。这意味着它将在网站的所有用户之间共享。这还意味着,如果您在Web场中运行站点,则必须使用进程外缓存存储来确保服务器场中的所有节点共享相同的缓存。这是MSDN上的article,讨论了这一点。