对于给定的应用程序,我们需要在每个在我们网站上连接的注册用户的网络会话中存储大约600 Kb的数据。我们将同时拥有大约1,000个注册用户,因此我们需要存储600 Mb的会话数据。
我们在会话中需要这么多数据的原因是为了避免频繁查询数据库中大约有10亿行的表。
我了解Heroku将会话信息存储在数据库中。这很好,因为它意味着会话数据可用于交叉dynos(没有会话亲和力)。
是否有另一种方法可以在dynos中存储更有效的信息?阅读文档,我发现了memcachier。
我的问题如下:
非常感谢你的帮助!
奥利弗
答案 0 :(得分:2)
Heroku根本不存储会话信息 - 会话信息的存储方式完全取决于您的应用程序和应用程序的框架,无论您是部署在Heroku还是任何其他系统上,它都将以相同的方式工作。
然而,对于什么类型的存储是明智的:由于数据量的原因,它听起来像cookie存储一样。数据库存储长期以来一直是Web应用程序的事实默认值,并且它没有任何问题。 Memcached会更快,而且更快的速度取决于你的配置(你使用的是连接池吗?每个页面视图都会在数据库中找到其他东西吗?你的缓存系统是什么样的?)。但只要你确定在会话数据中存储这么多信息的策略是合理的,那么数据库和memcached存储之间的区别就不会很大。