我有一个疑问,如果在共享托管环境中使用大量数据缓存和会话变量是不好的做法?通过共享托管我的意思是托管在具有较少RAM和所有的服务器上。因为当缓存变得足够大以至于炸掉内存时会发生什么?
拉夫
答案 0 :(得分:0)
这在很大程度上取决于您托管应用程序的服务器配置。首先,不要担心你在共享主机上的内存。在内存使用量大于预定义阈值之前,您的提供商将关闭您的应用程序。
关于会议,有几件事需要考虑。会话状态模式和运行应用程序的节点数。例如,如果您使用默认的内存中会话状态并在多个服务器(webfarm)上运行您的应用程序,那么每个节点将在内存中拥有自己的会话数据。这是危险的,因为我们假设用户在节点A上执行其第一个请求,一些数据存储在会话中,第二个请求由节点B提供服务。现在,由于会话存储在节点A的内存中,第二个请求将失败因为它无法找到会话数据。在这种情况下,您应该考虑使用进程外会话存储模式。
就缓存而言,如果要优化缓存,建议使用专用缓存服务器,而不是将其存储在Web服务器的内存中。