ThinkPHP6 での Redis の使用

王林
リリース: 2023-06-20 12:31:40
オリジナル
5280 人が閲覧しました

インターネット テクノロジーの発展に伴い、多くの 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 thinkacadeCache;

$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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート