Session 西纳特拉+;Heroku:存储数据>;会话中的4k

Session 西纳特拉+;Heroku:存储数据>;会话中的4k,session,heroku,sinatra,rack,Session,Heroku,Sinatra,Rack,我有一个将在Heroku上运行的Sinatra应用程序 它有一个相当长的运行方法(大约1到3秒),用于创建数据列表。我一直在一个会话中存储这些数据。这样,当我的用户需要再次访问它时,我就不必重新生成列表(他们经常使用它) 在某些情况下,数据超过4k。这意味着我不能再将其存储在会话中 Rack::Session::Pool,工作正常。除了它与heroku不兼容(因为dynos不共享内存) 有人能建议我如何最好地存储这些数据吗? 我曾考虑将其写入我的SQL数据库,因为SELECT比最初生成的列表成本

我有一个将在Heroku上运行的Sinatra应用程序

它有一个相当长的运行方法(大约1到3秒),用于创建数据列表。我一直在一个会话中存储这些数据。这样,当我的用户需要再次访问它时,我就不必重新生成列表(他们经常使用它)

在某些情况下,数据超过4k。这意味着我不能再将其存储在会话中

Rack::Session::Pool,工作正常。除了它与heroku不兼容(因为dynos不共享内存)

有人能建议我如何最好地存储这些数据吗?


我曾考虑将其写入我的SQL数据库,因为SELECT比最初生成的列表成本更低。一定有更好的方法吗?

如果你不想使用DB,那么像Memcache这样的东西怎么样?Heroku有一个可以使用的Memcache插件。

通过Heroku使用Memcache似乎不是最划算的选择。。。考虑到我期望的数据量。我目前正在使用数据库。DB的响应时间约为100ms。。。相比之下,通过一个会话30毫秒。不错!除非有更好的办法,否则我可能会坚持使用DB。