【问题标题】:Application data in SinatraSinatra 中的应用程序数据
【发布时间】:2012-05-17 02:39:19
【问题描述】:

假设我有一些对象只需要在应用程序中创建一次,但可以从多个请求中访问。对象是不可变的。做这个的最好方式是什么?

【问题讨论】:

    标签: ruby sinatra


    【解决方案1】:

    将它们存储在会话中。
    如果您不想在服务器重启后丢失它们,请使用数据库(例如,SQLite,它是单个文件)。

    【讨论】:

      【解决方案2】:

      您想要持久化您的对象。通常你会使用一些 ORM,比如 Active Record 或 Datamapper。取决于您可以使用什么。如果你想要一些没有迁移的简单的东西,并且你可以访问 MongoDB,请使用 mongomapper。

      【讨论】:

        【解决方案3】:

        如果该对象仅使用一段时间,则将其丢弃(如果再次需要,则重新创建),使用一些缓存机制,如 memcached 或 redis。

        如果设置此类服务很繁重并且您想避免它,并且 - 比如说 - 您正在使用 Debian/Ubuntu,然后将您的对象保存到 /shm 设备中的文件(使用 Marshal-ing)中,这实际上是内存。

        如果数据结构复杂,那么按照上面的建议使用 SQLite。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-02-04
          • 2011-04-09
          • 1970-01-01
          • 1970-01-01
          • 2015-08-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多