我在我的应用程序中使用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
对象。但是,我不知道如何从这一点继续?例如,我在哪里放这个命令?我在哪里存储生成的对象?如何在我的模型代码中访问此对象?或者我应该采用完全不同的方式?
提前感谢您的帮助。
答案 0 :(得分:2)
Rails.cache
只是为方便起见而创建的缓存存储。没有什么可以阻止你做像
::MEMORY_STORE = ActiveSupport::Cache::MemoryStore.new
然后当你想使用那个商店而不是Rails.cache
时,你会做
MEMORY_STORE.fetch('some_key') {}
虽然@leonardoborges评论说,我不确定你为什么要这样做