2017-03-13 11 views
0

私は、RedisとSymfonyフレームワークをキャッシュとして使用しています。私のコントローラはサードパーティのAPIから情報を取得し、PHPオブジェクトを作成してTwigテンプレートに配置します。レディスでレンダリングされたHTMLをキャッシュするのは良い判断でしょうか?オブジェクトをシリアル化して保存するほうが良いでしょうか?最後のケースでは、サーバーはシリアライズとテンプレート化に時間を費やしますが、最初のケースではそれほど美しいものはないと感じています。レンダリングされたhtmlをRedisに保存することはできますか?

ありがとうございます。

+1

ページの生成に使用される生データを格納するか、HTML全体を格納します。シリアライゼーションには多くのメモリとリソースが必要です。 – Dimi

+0

HTMLをキャッシュすることはできますが、HTMLに埋め込む以外の目的でAPIの結果を使用する必要がある場合は、問題が発生します(これは珍しいことではありません)。実際にそれらをレンダリングするだけの場合は、HTMLのキャッシュは問題ありません。 – apokryfos

答えて

0

この目的のために設計されたVarnishのようなリバースプロキシキャッシュを使用します。これは、キャッシュを扱うときの頭痛の主な原因であるキャッシュ無効化のための強力な方法を持っています。

redisを使用している場合は、各リクエストが依然としてアプリケーションに影響を与え、DIコンテナ全体がロードされます。イベント(または使用する方法)によってリクエストが処理され、レディスであるかどうか、それ。

新鮮なコンテンツが必要な場合にのみアプリケーションに影響がある場合は、リバースプロキシキャッシュを使用します。

redisのようなシステムは、全体的なパフォーマンスを向上させるために、Apiの結果や内部の重くて「変化する」計算を保存することができる「中間」キャッシュとすることができます。

関連する問題