Ruby on rails 使用八达通gem和Rails-SQL缓存
我们在rails应用程序中使用octopus将读取查询直接转发到我们的从属框,并向我们的主框写入。不得不说这是一块巨大的宝石,但我们注意到,对从属对象的查询放弃了活动记录的默认SQL缓存。这有点违背了水平扩展DB服务器的目的,只会失去有助于扩展的缓存层 有没有人知道如何解决这个问题,或者有没有更好的宝石可以使用。我们不需要八达通提供的切分功能;只是复制Ruby on rails 使用八达通gem和Rails-SQL缓存,ruby-on-rails,ruby-on-rails-3,caching,octopus,Ruby On Rails,Ruby On Rails 3,Caching,Octopus,我们在rails应用程序中使用octopus将读取查询直接转发到我们的从属框,并向我们的主框写入。不得不说这是一块巨大的宝石,但我们注意到,对从属对象的查询放弃了活动记录的默认SQL缓存。这有点违背了水平扩展DB服务器的目的,只会失去有助于扩展的缓存层 有没有人知道如何解决这个问题,或者有没有更好的宝石可以使用。我们不需要八达通提供的切分功能;只是复制 提前感谢为连接打开SQL缓存的方法是执行以下操作 ActiveRecord::Base.connection.cache do # th
提前感谢为连接打开SQL缓存的方法是执行以下操作
ActiveRecord::Base.connection.cache do
# the query cache is used here
end
# and turned off by here
对于主activerecord连接,rails有一个机架中间件,用于为每个请求设置此连接。如果您希望在从属连接上发生这种情况,那么您需要自己执行类似的操作,以便为第二个连接启用缓存(比机架中间件是一个around\u过滤器稍微简单一些)
我对八达通不是很熟悉,但这两个连接可能是独立的-activerecord不会因为您在另一个连接上做了一些写入操作就知道在您的读取连接上使其缓存无效谢谢您frederick…看起来还需要一些工作。谢谢你的反馈我有一个关于八达通宝石的问题。你能在这里回答吗