インターネット アプリケーションの発展に伴い、パフォーマンスと速度に対する要求もますます高まっています。 PHP 開発者にとって、一般的なパフォーマンスの問題の 1 つはデータベース クエリの効率です。パフォーマンスを向上させるために、通常、キャッシュ テクノロジが使用されます。オブジェクト キャッシュは、一般的なキャッシュ テクノロジの 1 つです。
オブジェクト キャッシュでは、Memcache が非常に人気のあるキャッシュ テクノロジになりました。 Memcache は、データをメモリにキャッシュしてデータ アクセス速度を向上できる、高性能の分散キャッシュ システムです。 PHP でのオブジェクト キャッシュに Memcache を使用すると、アプリケーションのパフォーマンスが大幅に向上します。次に、PHP でオブジェクトをキャッシュするために Memcache を使用する方法を紹介します。
PHP でのオブジェクト キャッシュに Memcache を使用するには、まず Memcache 拡張機能をインストールする必要があります。 Memcache extension は、Memcache サーバーと通信できる PHP 用の拡張ライブラリです。インストール前に、Memcache サーバーがインストールされているかどうかを確認する必要があります。インストールされていない場合は、Memcache 公式 Web サイト (https://memcached.org/) の手順に従ってインストールできます。
Memcache 拡張機能のインストールは比較的簡単です。次のコマンドを使用できます。
$ sudo apt-get install php-memcached
インストールが完了したら、PHP 構成ファイル php で Memcache 拡張機能を有効にする必要があります。 ini (php.ini ファイルで実行できます) 次のコンテンツを追加します:
extension=memcached.so
Memcache をオブジェクト キャッシュに使用する前に、次の内容が必要です。 Memcache サーバーに接続します。次のコードを使用して接続できます。
$memcache = new Memcached(); $memcache->addServer('127.0.0.1', 11211);
このうち、addServer() メソッドの 2 つのパラメータは、それぞれ Memcache サーバーの IP とポート番号を表します。複数の Memcache サーバーがある場合は、addServer() メソッドを使用して複数のサーバーを追加できます。
Memcache サーバーに接続した後、set() メソッドを使用してオブジェクトを Memcache に保存できます。 set() メソッドのパラメータはキーと値のペアで、保存されるオブジェクトとオブジェクトのキー名を表します。例:
$object = new MyClass(); // 要存储的对象 $memcache->set('my_object', $object);
ここでは、オブジェクトを格納する例としてカスタム クラス MyClass が使用されています。もちろん、配列、文字列、数値、その他の種類のデータを Memcache に直接保存することもできます。
保存されたオブジェクトが一定期間後に自動的に期限切れになるように、有効期限を設定することもできます。たとえば、オブジェクトを Memcache に保存し、有効期限を 5 分に設定します。
$object = new MyClass(); // 要存储的对象 $memcache->set('my_object', $object, time()+300);
ここでは time() 関数を使用して現在のタイムスタンプを取得し、タイムスタンプを表すために 300 秒 (5 分) が追加されます。オブジェクトは 5 分後に自動的に期限切れになります。
オブジェクトを Memcache に保存した後、get() メソッドを使用して Memcache からオブジェクトを取得できます。 get() メソッドのパラメータはオブジェクトのキー名です。例:
$object = $memcache->get('my_object');
オブジェクトが Memcache に存在する場合はオブジェクトが返され、そうでない場合は false が返されます。
Memcache をオブジェクト キャッシュに使用する場合、通常、オブジェクトが Memcache に存在するかどうかを確認する必要があります。 get() メソッドを使用してオブジェクトの値を取得し、戻り値が false かどうかを判断できます。例:
if (($object = $memcache->get('my_object')) === false) { // 从数据库中读取该对象,并存储到Memcache中 $object = new MyClass(); $memcache->set('my_object', $object); }
ここでは if ステートメントを使用して、オブジェクトが Memcache に存在するかどうかを確認します。存在しない場合、オブジェクトはデータベースから読み取られて、Memcache に保存されます。
Memcache からオブジェクトを削除する必要がある場合は、delete() メソッドを使用してオブジェクトのキャッシュを削除できます。例:
$memcache->delete('my_object');
これにより、キー名 my_object のオブジェクト キャッシュが Memcache から削除されます。
上記は、PHP でオブジェクト キャッシュに Memcache を使用する基本的な手順です。 Memcache を使用してオブジェクトをキャッシュすると、PHP アプリケーションのパフォーマンスが大幅に向上し、データベース クエリの数が減り、サーバーの負荷が軽減されます。一方、Memcache は分散特性も備えており、アプリケーションの負荷容量を容易に拡張できるため、PHP 開発者がよく使用するキャッシュ技術の 1 つです。
以上がPHP でのオブジェクト キャッシュに Memcache を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。