ホームページ >バックエンド開発 >PHPチュートリアル >PHP 開発で Memcached を使用してデータをキャッシュする方法

PHP 開発で Memcached を使用してデータをキャッシュする方法

王林
王林オリジナル
2023-06-27 09:48:58740ブラウズ

インターネット アプリケーションの継続的な開発に伴い、データ ストレージとアクセスはアプリケーション開発における非常に重要なリンクとなっています。多くの場合、アプリケーションのパフォーマンス、応答速度、ユーザー エクスペリエンスを向上させるために、アプリケーション内のデータをキャッシュする必要があります。この記事では、Memcached を使用して PHP 開発でデータをキャッシュし、アプリケーションのパフォーマンスを向上させる方法を紹介します。

Memcached は、高性能の分散メモリ キャッシュ システムです。データをメモリにキャッシュするので、データをすばやく読み書きできます。 PHP 開発では、アプリケーションの応答速度とパフォーマンスを向上させるために、計算結果、データベース クエリ結果、その他のデータをキャッシュするために Memcached をよく使用します。

Memcached のインストールと構成

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

sudo apt-get update
sudo apt-get install memcached

インストールが完了したら、Memcached の PHP 拡張機能もインストールする必要があります。 Ubuntu システムでは、次のコマンドを使用して Memcached PHP 拡張機能をインストールできます:

sudo apt-get install php-memcached

インストールが完了したら、php.ini 構成ファイルに次の構成を追加します:

extension=memcached.so

Then構成を有効にするには、Apache サービスまたは PHP-FPM サービスを再起動します。

Memcached を使用したデータのキャッシュ

Memcached を使用したデータのキャッシュは非常に簡単です。 Memcached 拡張機能が提供する関数を使用して操作するだけです。 Memcached を使用してデータをキャッシュする例を次に示します。

<?php

// 连接到 Memcached 服务器
$memcached = new Memcached();
$memcached->addServer('localhost', 11211);

// 将数据缓存到 Memcached 中
$memcached->set('key', 'value', 10); // 缓存 10 秒

// 从 Memcached 中读取数据
$value = $memcached->get('key');
if ($value === false) {
    // 缓存不存在,从数据库中查询数据
    $value = 'data from database';
    
    // 将从数据库中查询的数据缓存到 Memcached 中
    $memcached->set('key', $value, 10);
}

echo $value;

上の例では、最初に Memcached インスタンスを作成し、Memcached サーバーを追加しました。次に、データをキーと値の形式で Memcached に保存し、データの有効期限を 10 秒に設定します。このデータにアクセスする必要がある場合は、まず Memcached からデータをクエリします。データが存在しない場合は、データベースからデータをクエリし、クエリ結果を Memcached にキャッシュします。

Memcached の高度な使用法

実際の開発では、Memcached のいくつかの高度な機能を使用してアプリケーションのパフォーマンスを最適化することもできます。一般的な高度な使用法をいくつか示します。

  • 複数のサーバーをセットアップする: データを複数の Memcached サーバーに分散して、アプリケーションのフォールト トレランスとパフォーマンスを向上させることができます。
  • カスタムのシリアル化と逆シリアル化: データのシリアル化と逆シリアル化の方法をカスタマイズして、さまざまなデータ型と構造に適応できます。
  • バッチ操作: 複数のデータをバッチで読み書きして、データの読み取りおよび書き込みのパフォーマンスを向上させることができます。
  • 自動フェイルオーバー: サーバーがダウンしたときに別のサーバーに自動的に切り替えるように自動フェイルオーバー ポリシーを設定できます。
<?php

// 连接到多个 Memcached 服务器
$memcached = new Memcached();
$memcached->addServers([
    ['host1', 11211],
    ['host2', 11211]
]);

// 自定义序列化和反序列化方法
$memcached->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_IGBINARY);
$memcached->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);

// 批量操作
$values = [
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
];
$memcached->setMulti($values);

// 自动失败转移
$memcached->setOption(Memcached::OPT_CONNECT_TIMEOUT, 100);
$memcached->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$memcached->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 5);
$memcached->setOption(Memcached::OPT_RETRY_TIMEOUT, 2);

概要

Memcached を使用してデータをキャッシュすると、アプリケーションのパフォーマンスと応答速度が大幅に向上します。 PHP 開発では、Memcached PHP 拡張機能を使用してデータ キャッシュを実装できます。 Memcached を使用するプロセスでは、アプリケーションのパフォーマンスをさらに最適化するためにいくつかの高度な機能を使用することもできます。

以上がPHP 開発で Memcached を使用してデータをキャッシュする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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