WHat是Ruby中大型缓存的最佳解决方案



我正在Ruby中构建一个REST API,JRuby+Sinatra运行在特立尼达web服务器上。

API的功能之一是从数据库中获取非常大的数据集,并将它们存储在中间缓存/非关系数据库层中。这是为了在数据集的顶部执行筛选/排序/操作,而不必从数据库中重新生成数据集。

我们正在寻找一个好的/最好的解决方案来实现这个中间层。

我的想法:

  • 使用像Riak这样的非关系数据库来存储数据集,并在上面有一个缓存层(比如CacheMoney)

注:

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

既然你征求意见,我就给你我的。。。我认为MongoDB将很好地满足您的需求:

http://www.mongodb.org/

几年来,我一直用它来存储大型历史数据集,这些数据集越来越大,它仍然可以胜任任务。我甚至不需要深入研究"分片"或一些高级功能。

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

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

最新更新