インターネット テクノロジーの発展に伴い、多くの Web サイトやアプリケーションが同時に大量のリクエストやデータ ストレージを処理する必要があるため、効率的なデータ キャッシュおよびストレージ ソリューションを使用することがより重要になっています。 Redis は、インターネット分野のデータ キャッシュ、セッション管理、その他のシナリオで広く使用されている高性能インメモリ データベースです。この記事では主にThinkPHP6でのRedisの使い方を紹介します。
1. Redis のインストールと設定
まず、Windows システムに Redis をインストールするには 2 つの方法があります。1 つは、Redis 圧縮パッケージをダウンロードして解凍し、exe ファイルを起動する方法です。 . もう 1 つは、Chocolatey パッケージ マネージャーを使用してインストールすることです。
Chocolatey をすでにインストールしている場合は、次のコマンドを使用して Redis をインストールできます:
choco install redis-64
インストールが完了したら、構成する必要があります。 Redis インストール ディレクトリで redis.windows.conf ファイルを見つけ、バインドと保護モードを次の構成に変更します。
bind 0.0.0.0 protected-mode no
これにより、Redis はすべての IP アドレスをリッスンし、保護モードがオフになります。これは私たちにとって開発とテストを行うのに便利です。
2. ThinkPHP6 の Redis 拡張機能
ThinkPHP6 の Redis 拡張機能は、PHP 拡張機能パッケージ predis に基づいて開発されています。使用する前に、composer.json ファイルに次の依存関係を追加する必要があります:
"predis/predis": "^1.1"
次に、composer を使用してインストールします。
composer update
インストールが完了したら、config ディレクトリに redis.php 構成ファイルを作成し、次の内容を追加します。ここでは、Redis サーバーの IP アドレス、ポート番号、認証パスワード、データベース番号など、Redis のデフォルトの接続情報を設定します。
3. Redis の基本的な使い方
ThinkPHP6 では、次のコードを通じて Redis インスタンスを取得できます:
return [ 'default' => [ 'host' => '127.0.0.1', 'port' => 6379, 'password' => '', 'database' => 0, 'prefix' => '', 'timeout' => 5, ], ];
このうち、キャッシュ ドライバーは Cache を通じて指定します。 :store は Redis であり、Redis インスタンスはハンドラー メソッドを通じて取得されます。
次に、Redis で次の操作を実行できます。
3.1. キャッシュの設定と取得
use thinkacadeCache; $redis = Cache::store('redis')->handler();
ここではnameという名前のキャッシュを設定し、値はTom、有効期間は60秒です。次に、get メソッドを使用してキャッシュされた値を取得します。
3.2. キャッシュの削除
// 设置缓存 $redis->set('name', 'Tom', 60); // 获取缓存 $name = $redis->get('name');
ここでは、名前のキャッシュが del メソッドによって削除されます。
3.3. キャッシュが存在するかどうかを確認する
// 删除缓存 $redis->del('name');
ここでは、exists メソッドを使用して、名前キャッシュが存在するかどうかを確認します。
4. Redis の高度なアプリケーション
基本的なキャッシュ操作に加えて、Redis はハッシュ、リスト、セット、順序付きセットなどのデータ型の操作もサポートします。ここでは、一般的に使用される高度なアプリケーションをいくつか紹介します。
4.1. ハッシュ テーブルの操作
// 判断缓存是否存在 if ($redis->exists('name')) { echo '缓存存在'; } else { echo '缓存不存在'; }
ここでは、hset メソッドを通じて user という名前のハッシュ テーブルが設定されており、名前と年齢の 2 つのフィールドが含まれています。次に、hgetall メソッドでハッシュ テーブル全体のデータを取得し、hget メソッドで名前と年齢フィールドの値をそれぞれ取得します。
4.2. リスト操作
// 设置哈希表 $redis->hset('user', 'name', 'Tom'); $redis->hset('user', 'age', 18); // 获取哈希表 $user = $redis->hgetall('user'); $name = $redis->hget('user', 'name'); $age = $redis->hget('user', 'age');
ここでは、rpush メソッドを通じて list という名前のリストに 3 つの要素 a、b、c が追加され、リスト内のすべての要素がメソッドを通じて取得されます。 lrange メソッド。 lpop メソッドを使用してリストの最初の要素をポップします。
4.3. 集合演算
// 添加列表元素 $redis->rpush('list', 'a'); $redis->rpush('list', 'b'); $redis->rpush('list', 'c'); // 获取列表元素 $list = $redis->lrange('list', 0, -1); // 弹出列表元素 $value = $redis->lpop('list');
ここでは、sadd メソッドを通じて set という名前の集合に 3 つの要素 a、b、c が追加され、集合内のすべての要素がメソッドを通じて取得されます。 smembers メソッド。srem メソッドを通じてコレクションから要素を削除します。
4.4. 順序集合の操作
// 添加集合元素 $redis->sadd('set', 'a'); $redis->sadd('set', 'b'); $redis->sadd('set', 'c'); // 获取集合元素 $set = $redis->smembers('set'); // 删除集合元素 $redis->srem('set', 'a');
ここでは、zadd メソッドによって zset という名前の順序集合に 3 つの要素 a、b、c が追加されます。各要素のスコアはそれぞれ 60、 70、80。次に、zrange メソッドを使用して順序付きセット内のすべての要素を取得し、スコアに従って小さいものから大きいものまで並べ替えます。最後に、zinkrby メソッドを使用して要素のスコアを増減できます。
5. 概要
この記事では、ThinkPHP6 で Redis を使用する方法と、Redis の基本および高度なアプリケーションをいくつか紹介します。これらの運用により、Webサイトやアプリケーションの同時処理能力やデータ保存性能を向上させ、ユーザーエクスペリエンスやユーザー満足度を向上させることができます。
以上がThinkPHP6 での Redis の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。