应用数据在Sinatra

时间:2012-05-16 13:55:03

标签: ruby sinatra

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您想要保留您的对象。通常你会使用Active Record或Datamapper这样的ORM来做。取决于您可以使用的内容。如果你想要一些简单的东西,没有迁移,你可以使用mongomapper访问MongoDB。

答案 2 :(得分:0)

如果该对象仅使用了一段时间,那么它将被丢弃(如果再次需要,然后重新创建),请使用一些缓存机制,如memcached或redis。

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

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