eAccelerator と memcached は、現在 PHP で使用できる 2 つの主流のキャッシュ アクセラレーション ツールです。
eAccelerator は PHP 用に特別に開発されており、memcached は PHP だけでなく、他のすべての言語でも使用できます。
eAccelerator の主な機能:
1. PHP ファイルの実行コードをキャッシュします。キャッシュされたコードが再度呼び出されるとき、メモリから直接読み取られるため、PHP の実行速度が大幅に低下します。
2. 共有メモリ操作機能を提供します: ユーザーは共通の非リソース オブジェクトをメモリに保存し、いつでも読み出すことができます。
データの保存と読み込みのための共有メモリ操作機能を提供します
二人の共通点:共通点:
両方とも、独自のデータの保存と読み取りに使用できる共有メモリ操作機能を提供します2 つの違い:
eAccelerator は PHP の拡張ライブラリとして存在するため、PHP の実行中にのみ共有メモリを操作し、読み書きすることができます。一般に、eAccelerator は、PHP を操作するプログラム自体によってのみ呼び出すことができます。共有メモリ。
同時に、eAccelerator は PHP プログラムの実行コードをキャッシュして、プログラムの読み込みと実行速度を向上させることができます。
この 2 つの違いに従って、本当に必要な場合に使用します。
eAccelerator は主にスタンドアロン PHP の高速化と中間データのキャッシュに使用され、リアルタイムのパフォーマンスが高くてもデータ操作の量が少ない場合に非常に実用的です。
memcached は分散システムやクラスターシステムで使用され、複数のサーバーでデータを共有でき、リアルタイム性が高く、データ操作の量が多い場合に非常に実用的です。
MemCached の正しい理解最初、MemCached はデータをメモリにキャッシュし、そのデータを操作するために使用されると聞きました (ここでの操作にはクエリと更新が含まれます)。これは本当に素晴らしいと思います。これにより、データベースを一定期間運用する必要がなくなります。それは素晴らしいことです。 それでは、クエリは確かに可能ですが、メモリを更新するときに同時実行を処理するにはどうすればよいでしょうか? もしそうなら、それは素晴らしいことになるでしょうか?
しかし、物事は言われたとおりではありません。 MemCached に対するこの理解は間違っています。MemCache も他のキャッシュと同じで、データが更新されるとキャッシュされたものは古いものになります。
オンラインで読みましたが、先輩たちの MemCached の説明がこの点を説明しています。
したがって、データベース リンクを省略して MemCached を直接更新することは期待しないでください。
私は、彼が提供した set メソッドがデータベースの更新に使用されていると思いました。
実際、この方法はデータベース内のレコードをMemCachedにキャッシュし、その有効期間を指定するというものです。
ここで、なぜレコードを削除したとしても、MemCached の内容が変わっていないのか考えてみました。
set() のとき、有効期限を設定しなかったため、デフォルトは 0 で、これは有効期限が切れないことを意味します。 MemCached サーバーは、再起動しない限り、常に存在します。
このように、ROR プロジェクトではキャッシュを使用してデータベースの取得を減らしていますが、MemCached によってデータベースの更新が不要になることは期待できません。
本当にデータベースを更新する必要さえなくなったら、本当に非データベース時代が到来することになります(笑)。おそらく可能性は低いでしょう。ユーザーが次々と列に並ぶようにできれば。
アップデートによるプレッシャーを軽減する別の方法を見つけてみましょう。
http://www.bkjia.com/PHPjc/327403.html
www.bkjia.com