【发布时间】:2013-07-16 15:13:06
【问题描述】:
我将数据库查询结果存储在 heroku 上的 memcache 中。我在 heroku 上使用 memcachier 插件。例如,如果我在 memcache 中有一个缓存用户的任务。我做这样的事情:
def cached_tasks
Rails.cache.fetch([:users, id, :tasks], :expires_in => 12.hours) { tasks.to_a }
end
这很好用,但我想使用两个不同的 memcache 实例来存储数据。
为什么?
一个使用非常频繁,基本上数据变化频繁,另一个用于大数据对象,永远不会改变或很少改变。
如何使用两个不同的实例并指定 cached_tasks 应存储在 memcache_instance_1 中,而其他类似 cached_images 应存储在 memcache_instance_2 中
为什么不使用同一个:
因为有时我需要刷新整个缓存,这也会刷新我不想要的大数据。
有什么建议吗?
【问题讨论】:
-
为什么不将大而罕见的变化作为静态资产提供服务?
-
你看到上面的评论了吗?
-
@MichaelSzyndel 是的。但这些都是特定于用户的,每天我都会获得大约 400-500 个新用户,这就是他们的 fb 朋友列表等数据。检查接受的答案。
标签: ruby-on-rails caching heroku ruby-on-rails-3.2 memcached