ホームページ >バックエンド開発 >PHPチュートリアル >PHP 開発で分散キャッシュに Memcache を使用するにはどうすればよいですか?

PHP 開発で分散キャッシュに Memcache を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-11-07 15:04:02860ブラウズ

PHP 開発で分散キャッシュに Memcache を使用するにはどうすればよいですか?

Web アプリケーションがますます複雑になるにつれて、パフォーマンスが重要な問題になっています。多くのアプリケーションにおいて、データベース クエリは最も時間のかかる操作の 1 つです。データベースからデータを頻繁に読み取ることを避けるために、キャッシュ システムを使用して、頻繁に読み取られるデータをメモリに保存し、すぐにアクセスできるようにすることができます。 PHP 開発では分散キャッシュに Memcached を使用することが非常に一般的ですが、この記事では分散キャッシュに Memcached を使用する方法を紹介します。

Memcached とは何ですか?

Memcached は、キャッシュされたデータを複数のサーバー間で共有できる高性能分散メモリ キャッシュ システムです。より具体的には、Memcached はデータをメモリに保存するキー/値キャッシュ システムです。これにより、開発者は、HTML ページ、データベース クエリの結果、さらには完全な Web アプリケーションを含む、アプリケーション内のあらゆる種類のデータをキャッシュできるようになります。

Memcached のインストールと構成

Memcached を使用する前に、まず Memcached をインストールする必要があります。 Linux システムでは、次のコマンドを使用してインストールできます:

sudo apt-get install memcached
sudo apt-get install php-memcached

インストールが完了したら、Memcached サービスを開始する必要があります。このサービスは次のコマンドで開始できます:

sudo service memcached start

次に、PHP 拡張モジュールで Memcached を構成する必要があります。 Ubuntu システムでは、これは次のファイルを編集することで構成できます:

sudo vi /etc/php/7.0/mods-available/memcached.ini

次の内容をファイルに追加します:

extension=memcached.so

ファイルを保存して閉じ、Apache サーバーを再起動します:

sudo service apache2 restart

これで、Memcached のインストールと構成が正常に完了しました。

分散キャッシュに Memcached を使用する

次に、分散キャッシュに Memcached を使用する方法を示します。まず、Memcached インスタンスを作成する必要があります。次のコードを使用できます。

$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211); // 添加一个Memcached服务器

上記のコードでは、Memcached インスタンスを作成し、Memcached サーバーを追加します。 addServer() 関数の最初のパラメータは Memcached サーバーの IP アドレス、2 番目のパラメータはポート番号 (デフォルトは 11211) です。

次に、データベース クエリ結果を Memcached にキャッシュする具体的な例を見てみましょう。ユーザー ID をパラメーターとして受け取り、ユーザーの情報を返す関数 fetchUserById() を定義したと仮定します。これを実現するコードは次のとおりです:

function fetchUserById($uid) {
    // 检查缓存中是否存在该用户信息
    $mc = new Memcached();
    $mc->addServer("127.0.0.1", 11211);
    $key = "user_".$uid;
    $data = $mc->get($key);
    if (!$data) {
        // 如果缓存中不存在该用户信息,则从数据库中查询
        $pdo = new PDO("mysql:host=127.0.0.1;dbname=mydb","root","");
        $stmt = $pdo->prepare("SELECT * FROM users WHERE id=:id");
        $stmt->bindParam(":id", $uid);
        $stmt->execute();
        $data = $stmt->fetch(PDO::FETCH_ASSOC);
        // 将查询结果缓存到Memcached中
        $mc->set($key, $data, 3600);
    }
    return $data;
}

上記のコードでは、ユーザー ID を Memcached キャッシュのキー名として使用し、キー名がキャッシュに存在する場合は、キャッシュされたデータが直接返されます。 。それ以外の場合は、データベースからデータをクエリし、クエリ結果を Memcached に保存して、次のクエリをキャッシュから読み取れるようにします。

フォローアップの考え

実際のアプリケーションでは、Memcached はページ キャッシュ、セッション データ キャッシュなど、他にも多くの用途があります。 Memcached を使用すると、Web アプリケーションの速度とパフォーマンスが大幅に向上しますが、同時に、キャッシュの更新、キャッシュの無効化、キャッシュの侵入など、より多くの問題を考慮する必要があります。したがって、分散キャッシュに Memcached を使用する場合は、効率を向上させるためにその実装プロセスとアプリケーション シナリオを考慮する必要があります。

以上がPHP 開発で分散キャッシュに Memcache を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。