Symfony2のHTTP Cache (Reverse Proxy)

Preview:

DESCRIPTION

2011/09/10 PHPカンファレンス2011のLTで発表したもの

Citation preview

Symfony2HTTPキャッシュ

@hidenorigoto

1

自己紹介

• 岐阜

• 日本Symfonyユーザー会

• 温泉ツアードキュメント翻訳勉強会他

• symfony 1.4本

• @hidenorigoto

2

今日の話の概要

本日の内容

5

本日の内容

1.Symfony2でHTTP Cacheを使う方法

5

本日の内容

1.Symfony2でHTTP Cacheを使う方法

2.HTTP Cacheのパフォーマンス

5

本日の内容

1.Symfony2でHTTP Cacheを使う方法

2.HTTP Cacheのパフォーマンス

3.まとめ

5

本日の内容

1.Symfony2でHTTP Cacheを使う方法

2.HTTP Cacheのパフォーマンス

3.まとめ

4.おまけ(時間が余った時)

5

翻訳してます

翻訳してます

• Symfony2公式ドキュメント(日本語訳)http://docs.symfony.gr.jp/symfony2/book/http_cache.html

•↑ここ読めばおk

翻訳してます

• Symfony2公式ドキュメント(日本語訳)http://docs.symfony.gr.jp/symfony2/book/http_cache.html

•↑ここ読めばおk• 力尽きたので

途中までしか訳されていません(明日続きをやるかも)

1Symfony2で

HTTP Cacheを使う方法(リバースプロキシキャッシュ)

7

とってもカンタン!

Symfony2にはリバースプロキシが組み込まれています!

HTTP Cacheを使う方法(リバースプロキシ)

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

コメント解除

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

2.キャッシュを有効にするコントローラでResponseにキャッシュプロパティをセット

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

2.キャッシュを有効にするコントローラでResponseにキャッシュプロパティをセット

これだけで、組み込みリバースプロキシの共有キャッシュが動作します

CacheKernel

コントローラ

フレームワーク

CacheKernel

コントローラ

リクエスト

フレームワーク

CacheKernel

コントローラ

リクエスト

レスポンス

フレームワーク

CacheKernel

コントローラ

リクエスト

レスポンス

フレームワーク

CacheKernel

コントローラ

リクエスト

レスポンス

キャッシュ

フレームワーク

CacheKernel

コントローラ

リクエスト

レスポンス

キャッシュリクエスト

フレームワーク

CacheKernel

コントローラ

リクエスト

レスポンス

キャッシュリクエスト

フレームワーク

CacheKernel

コントローラ

リクエスト

レスポンス

キャッシュリクエスト

レスポンス(キャッシュから)

フレームワーク

2HTTP Cacheのパフォーマンス

13

パフォーマンス比較で使われたアプリケーションを手元MacBook Airでab

キャッシュなし

キャッシュなし

46.24 #/sec

キャッシュあり

キャッシュあり

180.09 #/sec

超特定ケースですが

4倍

3まとめ

18

キャッシュの適用範囲が広がる

キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい

キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい

• 短時間のキャッシュでもメリットがある

キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい

• 短時間のキャッシュでもメリットがある

• ページ片の独立キャッシュ(ESI)

キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい

• 短時間のキャッシュでもメリットがある

• ページ片の独立キャッシュ(ESI)

HTTPキャッシュを積極的に使おう!

目指すところ

フレームワークの仕組みの中だけで、これまで以上にアプリケーションのパフォーマンスを高められる

目指すところ

フレームワークの仕組みの中だけで、これまで以上にアプリケーションのパフォーマンスを高められる

cleanなコード

目指すところ

フレームワークの仕組みの中だけで、これまで以上にアプリケーションのパフォーマンスを高められる

cleanなコードcleanなモデルを維持

目指すところ

4おまけ

21

Varnishを使う

Varnishを使う

• Varnish(リバースプロキシ)

Varnishを使う

• Varnish(リバースプロキシ)

Varnishを使う

• Varnish(リバースプロキシ)

• ESIにも対応

Varnishを使う

• Varnish(リバースプロキシ)

• ESIにも対応• 公式ドキュメント

How to use Varnish to speedup my Websitehttp://symfony.com/doc/current/cookbook/

5おまけ(2)

23

Pinocoが気になった方へ

• @tanakahisateru さんが開発

• ビューにPHPTALを採用

• デザイナーフレンドリー

• https://github.com/tanakahisateru/pinoco

是非Symfony2を試してみてください

ご清聴ありがとうございました!

Recommended