什么是Ruby中大缓存的最佳解决方案?

时间:2012-01-20 11:23:44

标签: ruby api caching sinatra jruby

我正在使用在Trinidad Web服务器上运行的JRuby + Sinatra在Ruby中构建REST API。

API的一个功能是从数据库中获取非常大的数据集,并将它们存储在中间缓存/非关系数据库层中。这是用于在该数据集之上执行过滤/排序/操作,而无需从数据库重建它。

我们正在研究实施这个中间层的好/最佳解决方案。

我的想法:

  • 使用像Riak这样的非关系数据库存储数据集并在顶部设置缓存层(如Cache Money)。

注意:

  • 我们的数据集可能相当大

1 个答案:

答案 0 :(得分:1)

既然你要求提出意见,我会给你我的意见......我认为MongoDB可以满足你的需求:

http://www.mongodb.org/

我用它来存储大型的历史数据集已经有几年了,现在只是不断变得越来越大,它仍然可以完成任务。我甚至不需要深入研究“分片”或某些高级功能。

我认为适合您描述的应用程序的原因是:

  • 这是一个索引的无模式文档存储,这意味着它可以非常“动态”添加或删除字段
  • 我对其性能与一些SQL数据库进行了基准测试,对于大型“扁平”数据,它在某些情况下的性能要好一些。
  • https://github.com/guyboertje/jmongo将允许您从JRuby
  • 访问MongoDB