1

对于给定的应用程序,我们需要在每个连接到我们网站的注册用户的网络会话中存储大约 600 Kb 的数据。我们将有大约 1,000 个并行注册用户,因此我们需要存储 600 Mb 的会话数据。

我们在会话中需要这么多数据的原因是为了避免频繁查询数据库中大约有 10 亿行的表。

我了解 Heroku 将会话信息存储在数据库中。这很好,因为这意味着会话数据可跨 dynos 使用(无会话亲和性)。

是否有另一种方法可以更有效地跨测功机存储信息?阅读文档,我发现 memcachier。

我的问题如下:

  • 你认为在数据库中存储这么多的会话就足够了?
  • 您是否建议使用 memcachier 以外的其他缓存系统来存储跨不同 dyno 可用的会话信息?

非常感谢你的帮助 !

奥利维尔

4

1 回答 1

2

Heroku 根本不存储会话信息——会话信息的存储方式完全取决于您的应用程序和应用程序的框架,并且无论您是部署在 Heroku 还是任何其他系统上,都将以相同的方式工作。

然而,关于哪种存储是明智的:听起来 cookie 存储是正确的,因为数据量很大。长期以来,数据库存储是 Web 应用程序事实上的默认设置,它没有任何问题。Memcached 会更快,而究竟快多少取决于您的配置(您是否使用连接池?是否每个页面视图都会访问数据库以获取其他内容?您的缓存系统是什么样的?)。但只要您确定这种在会话数据中存储如此多信息的策略是合理的,那么数据库和 memcached 存储之间的差异就不会很大。

于 2013-05-04T05:02:55.743 回答