2013-05-04 29 views
1

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

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

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

是否有另一种更有效地存储dynos信息的方法?阅读文档,我找到了memcachier。

我的问题是以下几点:

  • 你认为存储在数据库中的会话的数量就足以
  • 你建议其他缓存系统比memcachier存储可在不同的会话信息高性能dynos?

非常感谢您的帮助!

奥利维尔

回答

2

的Heroku并不存储会话信息的话 - 完全是怎样的会话信息存储取决于应用程序和应用程序的框架,将在相同的方式工作,无论您是部署在Heroku或任何其他系统。

但是,至于什么样的存储是明智的,听起来就像Cookie存储是正确的,因为数据量很大。数据库存储是Web应用程序事实上的默认设置,并且没有任何问题。 Memcached会更快,而且更快的速度完全取决于你的配置(你使用的是连接池吗?每个页面视图是否碰到数据库以寻找其他东西?你的缓存系统是什么样的?)。但只要您确信在会话数据中存储这么多信息的策略是合理的,那么数据库和memcached存储之间的差异就不会很大。

+0

嗨安德鲁,谢谢你的帮助!关于会话中的数据量,我调查了不同的策略,并试图优化SQL查询,但给了10亿行表,我认为它是最有效的。应用程序将使用Django/PostreSQL编写。 – user2304946 2013-05-04 05:20:30

相关问题