Кэширование

326 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
326
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Кэширование

    1. 1. Кэширование
    2. 2. Кэширование ...и не только
    3. 3. Кэшированиеувеличение быстродействия за счёт храненияданных в промежуточном буфере с быстрымдоступом, содержащий копию тойинформации, которая хранится в памяти сменее быстрым доступом, но с наибольшейвероятностью может быть оттуда запрошена. 2
    4. 4. Базовый запрос к Rails приложению 3
    5. 5. Типы кэширования• HTTP Caching• Proxy• Reverse proxy• Page Caching• Action Caching• Fragment Caching• Sweepers• SQL Caching• Asset Pipeline• Rails.cache• CDN 4
    6. 6. HTTP Cachingработает на уровне протокола. Браузерможет запрашивать информацию у сервера осодержимом не скачивая его, если серверсообщает о том что информация не устарела,то она не скачивается и используется ранеескаченная. 5
    7. 7. Proxy 6
    8. 8. Reverse proxy 7
    9. 9. Page Caching• GET /posts• Возвращается /public/posts.html если он существует• Код приложения не будет вызываться 8
    10. 10. Page Caching• GET /posts• Возвращается /public/posts.html если он существует• Код приложения не будет вызыватьсяcaches_page :index 8
    11. 11. Page Caching• GET /posts• Возвращается /public/posts.html если он существует• Код приложения не будет вызыватьсяcaches_page :indexexpire_page :action => :index 8
    12. 12. Action Caching 9
    13. 13. Action Cachingbefore_filter :authenticate 9
    14. 14. Action Cachingbefore_filter :authenticatecaches_action :index 9
    15. 15. Fragment Caching<% cache(news) do %> <% @news.each do |p| %> # содержание <% end %><% end %> 10
    16. 16. Fragment Caching<% cache(news) do %> <% @news.each do |p| %> # содержание <% end %><% end %>cache explicit-key # views/explicit-keycache @post # views/posts/2-1283479827349cache [@post, sidebar] # views/posts/2-2348719328478/sidebarcache [@post, @comment] # views/posts/2-2384193284878/comments/1-2384971487 10
    17. 17. Sweepers 11
    18. 18. Sweepersexpire_action expire_fragment expire_page 11
    19. 19. Sweepersexpire_action expire_fragment expire_pageapp/sweepers 11
    20. 20. Sweepersexpire_action expire_fragment expire_pageapp/sweepersclass PostSweeper < ActionController::Caching::Sweeper 11
    21. 21. Sweepersexpire_action expire_fragment expire_pageapp/sweepersclass PostSweeper < ActionController::Caching::Sweeperobserve Post 11
    22. 22. Sweepersexpire_action expire_fragment expire_pageapp/sweepersclass PostSweeper < ActionController::Caching::Sweeperobserve Postafter_update after_create after_destroy 11
    23. 23. Sweepersexpire_action expire_fragment expire_pageapp/sweepersclass PostSweeper < ActionController::Caching::Sweeperobserve Postafter_update after_create after_destroycache_sweeper :post_sweeper 11
    24. 24. SQL Cachingclass ProductsController < ActionController def index # Run a find query @products = Product.all ... # Run the same query again @products = Product.all endend 12
    25. 25. Asset Pipelinelocation ~ ^/(assets)/ { root /path/to/public; gzip_static on; expires max; add_header Cache-Control public;} 13
    26. 26. Rails.cache 14
    27. 27. Rails.cacheRails.cache.write foo, bar 14
    28. 28. Rails.cacheRails.cache.write foo, barRails.cache.read foo 14
    29. 29. Rails.cacheRails.cache.write foo, barRails.cache.read fooRails.cache.fetch huge-data do Message.allend 14
    30. 30. Content Delivery Network 15
    31. 31. ||=def current_user User.find(session[:user_id])end 16
    32. 32. ||= 16
    33. 33. ||=def current_user @current_user ||= User.find(session[:user_id])end 16
    34. 34. Читаем• http://guides.rubyonrails.org/caching_with_rails.html• http://guides.rubyonrails.org/asset_pipeline.html• http://broadcastingadam.com/2012/07/advanced_caching_revised/• http://mnot.net/cache_docs/• http://tomayko.com/writings/things-caches-do 17
    35. 35. Вопросы?

    ×