Ruby on rails 是否可以使用片段缓存指定缓存,或确定特定调用的缓存命中/未命中率
我们有一个Rails 4.2应用程序,目前正在跨多个应用程序使用共享缓存。我们的memcached未命中率相当高(比如85%的命中率和15%的未命中率),但由于多个应用程序共享同一个memcached实例,这一点变得复杂。因此,我们可能会在几个关键缓存进程中获得较高的未命中率(我们的DataDog数据将支持这一点) 是否可以在fragement缓存调用上指定缓存存储,如:Ruby on rails 是否可以使用片段缓存指定缓存,或确定特定调用的缓存命中/未命中率,ruby-on-rails,caching,memcached,Ruby On Rails,Caching,Memcached,我们有一个Rails 4.2应用程序,目前正在跨多个应用程序使用共享缓存。我们的memcached未命中率相当高(比如85%的命中率和15%的未命中率),但由于多个应用程序共享同一个memcached实例,这一点变得复杂。因此,我们可能会在几个关键缓存进程中获得较高的未命中率(我们的DataDog数据将支持这一点) 是否可以在fragement缓存调用上指定缓存存储,如: cache(order, OrderCache) do # whatever end 我认为,通过执行以下操作,对象
cache(order, OrderCache) do
# whatever
end
我认为,通过执行以下操作,对象缓存可以做到这一点:
OrderCache = ActiveSupport::Cache::MemCacheStore.new
是否有其他方法可以解决特定缓存操作的命中/未命中率问题?也许这是一个复杂的想法,但我认为如果我正确理解您的问题,您可以制作自己的缓存存储包装器来决定使用哪个缓存存储 调用cache方法时,它最终在控制器上调用
read\u fragment
和write\u fragment
,这些方法调用cache\u store.read
和cache\u store.write
然后,您可以拥有一个自定义缓存存储类,该类具有自定义的read
和write
方法,该方法根据选项将读写操作委托给实际缓存存储
类MyCacheStore<。。。
def初始化
@my_catchall_store=ActiveSupport::Cache::MemCacheStore.new
@我的订单存储=ActiveSupport::Cache::MemCacheStore.new
结束
def读取(键、选项)
案例选项[:存储]
时间:订单存储,然后@my\u订单存储。读取(键,选项)
其他的
@my_catchall_store.read(键,选项)
结束
结束
#类似于。写
然后你用它就像
cache(:order,store::order\u store)do
#一些代码
结束
缓存(:你做的其他事情)
#一些代码
结束
我不知道你是不是在问这个对不起