【发布时间】:2017-02-22 18:37:39
【问题描述】:
如何跨请求/操作启用缓存?
我的堆栈:
- Rails 4.2.7
- Postgres 9.5
我在 Rails 日志中注意到以下内容
Country Load (0.4ms) SELECT "countries".* FROM "countries" WHERE "countries"."iso" = $1 LIMIT 1 [["iso", "US"]]
State Load (1.4ms) SELECT "states".* FROM "states" WHERE "states"."iso" = $1 AND "states"."country_id" = $2 LIMIT 1 [["iso", "OH"], ["country_id", 233]]
Country Load (0.3ms) SELECT "countries".* FROM "countries" WHERE "countries"."iso" = $1 LIMIT 1 [["iso", "US"]]
State Load (1.1ms) SELECT "states".* FROM "states" WHERE "states"."iso" = $1 AND "states"."country_id" = $2 LIMIT 1 [["iso", "OH"], ["country_id", 233]]
Country Load (3.6ms) SELECT "countries".* FROM "countries" WHERE "countries"."iso" = $1 LIMIT 1 [["iso", "US"]]
State Load (1.2ms) SELECT "states".* FROM "states" WHERE "states"."iso" = $1 AND "states"."country_id" = $2 LIMIT 1 [["iso", "OH"], ["country_id", 233]]
请注意,相同的查询正在快速连续地对我的数据库运行多次。有什么方法可以向 Rails 表明某些表/模型不太可能更改,因此某些查找可以缓存在应用服务器上?
【问题讨论】:
标签: ruby-on-rails postgresql ruby-on-rails-4 caching model