【发布时间】:2012-05-17 02:39:19
【问题描述】:
假设我有一些对象只需要在应用程序中创建一次,但可以从多个请求中访问。对象是不可变的。做这个的最好方式是什么?
【问题讨论】:
假设我有一些对象只需要在应用程序中创建一次,但可以从多个请求中访问。对象是不可变的。做这个的最好方式是什么?
【问题讨论】:
将它们存储在会话中。
如果您不想在服务器重启后丢失它们,请使用数据库(例如,SQLite,它是单个文件)。
【讨论】:
您想要持久化您的对象。通常你会使用一些 ORM,比如 Active Record 或 Datamapper。取决于您可以使用什么。如果你想要一些没有迁移的简单的东西,并且你可以访问 MongoDB,请使用 mongomapper。
【讨论】:
如果该对象仅使用一段时间,则将其丢弃(如果再次需要,则重新创建),使用一些缓存机制,如 memcached 或 redis。
如果设置此类服务很繁重并且您想避免它,并且 - 比如说 - 您正在使用 Debian/Ubuntu,然后将您的对象保存到 /shm 设备中的文件(使用 Marshal-ing)中,这实际上是内存。
如果数据结构复杂,那么按照上面的建议使用 SQLite。
【讨论】: