19. PAGE CACHING
• Saves entire page to xyz.html in public
• Can serve up as gzipped
• Fast!
• Generally useless for anything but public static content
Thursday, 30 May 13
20. ACTION CACHING
• Same as page caching but allows before filters
• Caches to the cache_store, not public folder
Thursday, 30 May 13
21. EXPIRING PAGE / ACTION
CACHES
• Manual cache clearing != fun
Thursday, 30 May 13
23. CONDITIONAL GETS
• Utilizes HTTP_IF_NONE_MATCH and IF_MODIFIED_SINCE
• Returns a HEAD 304 (not modified) response
• Does not render any content
Thursday, 30 May 13
25. A BETTERTOUCH CHAIN
• updated_at on User? CHANGES ALLTHETIME
• belongs_to :user,
touch: :enrollments_updated_at
• updated_at columns for various children
Thursday, 30 May 13
31. ACTIVERECORD QUERY
CACHING
• Course Load (129.4ms) SELECT `courses`.* FROM `courses`
• CACHE (0.0ms) SELECT `courses`.* FROM `courses`
• Doesn’t work across requests
Thursday, 30 May 13
32. ACTIVERECORD QUERY
CACHING
• Caches AR query across requests in Redis
• Started GET "/visit/tag.gif" for 192.168.33.10 at 2013-02-20 11:28:28 +1100
Processing byVisitTagController#create as */*
[1m[36mUser Load (0.7ms)[0m [1mSELECT `users`.* FROM `users` WHERE `users`.`id` = 2 LIMIT 1[0m
[1m[35mFeature Load (0.4ms)[0m SELECT `features`.* FROM `features` WHERE `features`.`key` = 'intercept_renewal_failed_members' LIMIT 1
[1m[36mCACHE (0.0ms)[0m [1mSELECT `features`.* FROM `features` WHERE `features`.`key` = 'intercept_renewal_failed_members' LIMIT 1[0m
[1m[35mFeature Load (0.3ms)[0m SELECT `features`.* FROM `features` WHERE `features`.`key` = 'redirect_agreement_update' LIMIT 1
[1m[36mCACHE (0.0ms)[0m [1mSELECT `features`.* FROM `features` WHERE `features`.`key` = 'redirect_agreement_update' LIMIT 1[0m
[1m[35mFeature Load (0.4ms)[0m SELECT `features`.* FROM `features` WHERE `features`.`key` = 'testmode' LIMIT 1
[1m[36mCACHE (0.0ms)[0m [1mSELECT `features`.* FROM `features` WHERE `features`.`key` = 'testmode' LIMIT 1[0m
Completed 200 OK in 13ms (ActiveRecord: 1.8ms)
• Started GET "/visit/tag.gif" for 192.168.33.10 at 2013-02-20 11:28:28 +1100
Processing byVisitTagController#create as */*
Completed 200 OK in 13ms (ActiveRecord: 0ms)
Thursday, 30 May 13