如何同时使用Memcache和Ruby On Rails默认内存存储?

时间:2012-01-13 11:23:51

标签: ruby-on-rails caching

我在我的应用程序中使用memcached(gem memcache-client),但我想同时使用内存缓存存储。我目前在application.rb中有以下内容:

config.cache_store = :mem_cache_store, {:namespace => "my_namespace_#{Rails.env}"}

这适用于Rails.cache.write(...)

等命令

我如何在某些模型中使用ActiveSupport::Cache::MemoryStore,同时出于其他原因使用memcached,直到现在呢?

我知道ActiveSupport::Cache.lookup_store会向我返回一个新的MemoryStore对象。但是,我不知道如何从这一点继续?例如,我在哪里放这个命令?我在哪里存储生成的对象?如何在我的模型代码中访问此对象?或者我应该采用完全不同的方式?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

Rails.cache只是为方便起见而创建的缓存存储。没有什么可以阻止你做像

这样的事情
::MEMORY_STORE = ActiveSupport::Cache::MemoryStore.new

然后当你想使用那个商店而不是Rails.cache时,你会做

MEMORY_STORE.fetch('some_key') {}

虽然@leonardoborges评论说,我不确定你为什么要这样做