使用Ruby on Rails进行多级缓存3

时间:2011-05-04 03:33:30

标签: ruby-on-rails ruby-on-rails-3 caching memcached

我在很多地方搜索过这个问题,但还没有找到答案。 根据rails指南和有关缓存的类似材料,rails可以使用以下缓存类型之一:内存,文件存储,memcached,自定义缓存类等。

但是如果我想在一个应用程序中使用两个或三个缓存类型,具体取决于缓存的实体呢?

例如(一个高负载的新闻集合器):我有几个前端rails服务器,几个带有分片MongoDB的服务器和一个用于memcached的服务器。如果我想做什么

  1. 前端的每节点内存缓存,用于非常常用的微小集合(以避免网络延迟从memcached获取数据),用于新闻部分和支持数据

  2. memcached for most read latest news

  3. 文件存储缓存(可以存储在为所有前端安装的一个网络文件存储中)用于存档新闻(必须缓存以避免频繁的标记处理,但是太大而无法将其存储在内存中)

2 个答案:

答案 0 :(得分:2)

AFAIK 没有缓存插件或机制可以实现您想要的精细定制。您可以随时编写自己的缓存存储,根据缓存的内容委托给其他子系统。

答案 1 :(得分:0)

我正在寻找相同的东西。 “ level2”可能就是您想要的。回购:https://github.com/mezis/level2 Rubygems条目:https://rubygems.org/gems/level2/versions/0.2.5一个巨大的问题是,它与dalli不兼容,它是与memcached交互的正常方式:https://github.com/mezis/level2/issues/6

我还发现了蛋糕,但似乎被废弃了:https://github.com/phaza/layercake

我真的希望Rails拥有这样的东西,这似乎是一个共同的愿望。

我正在考虑自己编写类似的内容,或者至少为本地内存缓存创建一个单独的帮助程序,然后使用“正常” Rails缓存系统进行“正常”缓存调用,以解决此问题: https://github.com/coreinfrastructure/best-practices-badge/issues/1481