ホームページ  >  記事  >  バックエンド開発  >  PHP と REDIS を使用してスケーラブルなキャッシュ構造を構築する方法

PHP と REDIS を使用してスケーラブルなキャッシュ構造を構築する方法

PHPz
PHPzオリジナル
2023-07-22 15:21:11655ブラウズ

PHP と REDIS を使用してスケーラブルなキャッシュ構造を構築する方法

キャッシュは、Web アプリケーションのパフォーマンスを向上させる重要な方法です。 REDIS は、分散キャッシュ オプションとして使用できる、高性能のオープン ソース インメモリ データベースです。この記事では、PHP と REDIS を使用してスケーラブルなキャッシュ構造を構築する方法を紹介します。

  1. REDIS のインストールと構成

まず、REDIS をインストールし、基本的な構成を実行する必要があります。

1.1 REDIS のダウンロードとインストール

最新バージョンの REDIS を REDIS 公式 Web サイト (https://redis.io/download) からダウンロードし、公式ドキュメントに従ってインストールできます。

1.2 REDIS サービスの開始

コマンド ラインで次のコマンドを実行して REDIS サービスを開始します:

redis-server
  1. PHP を使用して REDIS に接続します

PHP を使用して REDIS に接続するには、REDIS PHP 拡張機能をインストールする必要があります。 REDIS PHP 拡張機能は、次のコマンドでインストールできます。

pecl install redis

php.ini ファイルに次の行を追加して、REDIS 拡張機能を有効にします。

extension=redis.so

次に、次のコードを使用します。 REDIS に接続するための PHP コード:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379); // 请根据实际情况修改主机和端口
  1. キャッシュ ストレージとして REDIS を使用する

REDIS には、文字列キャッシュとハッシュ キャッシュという 2 つの一般的に使用されるキャッシュ ストレージ方法があります。この2つの使い方をそれぞれ紹介していきます。

3.1 文字列キャッシュ

文字列キャッシュは、キーと値のペアを REDIS に保存します。これにより、さまざまな種類のデータを柔軟に保存できます。

// 设置缓存
$redis->set('key', 'value');

// 获取缓存
$value = $redis->get('key');

// 判断缓存是否存在
if ($redis->exists('key')) {
    // 缓存存在
} else {
    // 缓存不存在
}

// 删除缓存
$redis->del('key');

3.2 ハッシュ キャッシュ

ハッシュ キャッシュは、REDIS のハッシュ テーブルに複数のキーと値のペアを格納します。これは、複雑なデータ構造を格納するのに適しています。

// 设置缓存
$redis->hSet('hash', 'field1', 'value1');
$redis->hSet('hash', 'field2', 'value2');

// 获取缓存
$value1 = $redis->hGet('hash', 'field1');
$value2 = $redis->hGet('hash', 'field2');

// 获取哈希表中所有字段和值
$data = $redis->hGetAll('hash');

// 判断字段是否存在
if ($redis->hExists('hash', 'field1')) {
    // 字段存在
} else {
    // 字段不存在
}

// 删除字段
$redis->hDel('hash', 'field1');
  1. キャッシュの有効期限と無効化の処理

キャッシュには、期限切れのデータが使用されないように有効期限を設定する必要があります。 TTL (Time To Live) を使用してキャッシュの有効期限を設定できます。

// 设置缓存,并指定过期时间为60秒
$redis->set('key', 'value', 60);

// 获取缓存的剩余有效时间
$ttl = $redis->ttl('key');

// 设置缓存的过期时间为0,即立即失效
$redis->expire('key', 0);
  1. キャッシュの名前空間とキー名の処理

キャッシュ キー名の競合を回避し、管理を容易にするために、名前空間を使用してさまざまなキャッシュ データを区別できます。

// 设置命名空间
$namespace = 'app:cache';

// 设置缓存,命名空间+键名
$redis->set($namespace . ':key', 'value');

// 获取缓存
$value = $redis->get($namespace . ':key');

// 删除缓存
$redis->del($namespace . ':key');

上記の方法を通じて、PHP と REDIS に基づいてスケーラブルなキャッシュ構造を構築し、Web アプリケーションに高パフォーマンスのキャッシュ サポートを提供できます。同時に、実際のニーズに応じてさらなる拡張と最適化を実行できます。

概要

この記事では、PHP と REDIS を使用してスケーラブルなキャッシュ構造を構築する方法を紹介します。 REDIS をキャッシュ ストレージとして使用することで、Web アプリケーションのパフォーマンスを向上させ、データベースへのアクセス圧力を軽減できます。同時に、適切なキャッシュ有効期限と名前空間管理を通じて、より柔軟で制御可能なキャッシュ メカニズムを提供できます。

参考資料:

  • PHP 公式ドキュメント: https://www.php.net/
  • REDIS 公式ドキュメント: https://redis.io/

以上がPHP と REDIS を使用してスケーラブルなキャッシュ構造を構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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