12

PHPサイトのキャッシュを実装する最良の方法は何ですか?明らかに、キャッシュしてはいけないもの(検索クエリなど)がいくつかありますが、「digg効果」を確実に回避するための適切なソリューションを見つけたいと思います。

WordPress用のWP-Cacheがあることは知っていますが、WP上に構築されていないカスタムソリューションを書いています。私は自分のキャッシュを作成することに興味があります(それが十分に単純な場合)、またはあなたは私に素敵で軽いフレームワークを指摘することができます。私はApacheをあまり知らないので、それがPHPフレームワークであれば、より適しているでしょう。

ありがとう。

4

8 に答える 8

16

出力バッファリングを使用して、出力の一部(キャッシュする部分)を選択的に保存し、十分な長さがない場合は次のユーザーに表示できます。このようにして、ページの他の部分(カスタマイズ可能なボックス、個人情報など)をオンザフライでレンダリングします。

于 2008-09-10T20:32:32.747 に答える
7

プロキシキャッシュ(Squid、Varnish)を使用し、ETagとともに適切なCache-Control / Expiresヘッダーを提供するのが最善の方法です。キャッシュの仕組みと最大限に活用する方法の詳細については、MarkNottinghamのキャッシュチュートリアルを参照してください。キャッシングプロキシからのパフォーマンス。

また、 memcachedをチェックして、データベースクエリ(または、より適切には、事前にレンダリングされたページフラグメント)をそこにキャッシュしてみてください。

于 2008-09-10T20:26:23.853 に答える
7

プロキシ キャッシュが問題外で、完全な HTML ファイルを提供している場合は、PHP を完全にバイパスすることで最高のパフォーマンスを得ることができます。WP Super Cacheの仕組みを調べてください。

キャッシュされていないページは、サイトと同様の URL 構造を持つキャッシュ フォルダーにコピーされます。その後の要求で、mod_rewrite はキャッシュされたファイルの存在を認識し、代わりにそれを提供します。他の RewriteCond ディレクティブは、コメント投稿者/ログイン ユーザーがライブ PHP リクエストを確認できるようにするために使用されますが、訪問者の大部分は Apache によって直接処理されます。

于 2008-09-15T14:34:35.870 に答える
4

MemcachedまたはAPCをお勧めします。どちらも非常にシンプルな API と多数のライブラリを備えたメモリ内キャッシュ ソリューションです。

これら2つの問題は、WebサーバーまたはMemcachedの場合は別のサーバーにインストールする必要があることです.

APC

長所:
  • 単純
  • 速い
  • PHPの実行も高速化
短所
  • 分散システムでは機能せず、各マシンはキャッシュをローカルに保存します

Memcached

長所:
  • 速い(っぽい)
  • すべての Web サーバーが使用するために別のサーバーにインストールできます。
  • 高度にテストされ、LiveJournal で開発されました
  • すべての大企業 (Facebook、Yahoo、Mozilla) が使用

    短所:
  • APCより遅い

  • 考えられるネットワーク遅延
  • もう少し構成

自分で書くことはお勧めしません。たくさんあります。ウェブサーバーにソフトウェアをインストールできない場合は、ディスクベースのキャッシュを使用できますが、競合の問題が発生する可能性があります。ある要求がファイルへの書き込み中に、別の要求が読み取りを行っている可能性があります。

数秒から 1 分間でも、実際に検索クエリをキャッシュできます。データベースが 1 秒間に数回以上更新されていない限り、多少の遅延は問題ありません。

于 2008-09-12T05:31:45.250 に答える
2

PHP Smarty テンプレート エンジン ( http://www.smarty.net ) には、かなり高度なキャッシュ システムが含まれています。

詳細については、Smarty マニュアルのキャッシュ セクションを参照してください: http://www.smarty.net/manual/en/caching.php

于 2008-09-10T23:34:15.537 に答える
1

ページまたはページの一部の単純なキャッシュ-Pear::CacheLiteクラス。また、APCとmemcacheをさまざまな目的で使用していますが、これまでに見た他の回答は、より完全で複雑なシステムに対するものです。ページの一部を再構築する手間を省く必要がある場合は、ファイルに裏打ちされたストアを備えたCache_liteで十分であり、実装は非常に簡単です。

于 2008-09-13T00:24:59.033 に答える
1

PHP キャッシュ フレームワークを探しているようです。非常に優れた CacheSystem プラグインが付属するテンプレート システム TinyButStrong をお勧めします。シンプルで軽く、カスタマイズ可能 (html ファイルの好きな部分をキャッシュできます)、非常に強力です ^^

于 2008-09-10T21:35:03.530 に答える
0

Project Gazelle (オープンソースの torrent サイト) は、Memcached をサイトにセットアップするための段階的なガイドを提供しています。このガイドは、大量のトラフィックを処理するためにセットアップしたい他の Web サイトで簡単に使用できます。

ソースを入手してドキュメントを読んでください。

于 2008-09-13T01:25:51.400 に答える