【发布时间】:2013-05-03 15:48:26
【问题描述】:
我目前有一个 Web 应用程序,它在每个页面请求中从数据库中获取当前登录用户的用户数据。
此 Web 应用程序可能有大约 30,000 个并发用户。
我的问题是最好缓存这个。例如在 C# 中使用System.Web.HttpRuntime.Cache.Add
或者这会削弱在内存中存储多达 30,000 个用户对象的服务器内存吗?
不缓存会不会更好,只在每次请求时从数据库中获取所需的数据?
【问题讨论】:
-
一台机器上的 30k 用户听起来很糟糕。恕我直言,您应该将该作业拆分到多个服务器上。
-
负载将被拆分,粘性会话。但我正在考虑将所有这些数据都保存在内存中的含义,即使它是拆分的。
-
如果可能,您应该强烈考虑避免粘性会话。 Sticky Sessions 是一种众所周知的用于构建可扩展 Web 服务器的反模式。如果有什么特别的东西驱使您进行粘性会话,您应该尝试想出另一种方法。
标签: database performance design-patterns caching database-performance