ホームページ >PHPフレームワーク >Laravel >redisによるlaravelの使い方

redisによるlaravelの使い方

王林
王林オリジナル
2023-05-21 09:01:072475ブラウズ

Laravel は人気のある PHP 開発フレームワークであり、「2020 Laravel Developers Survey」で最も人気のある PHP フレームワークのタイトルを獲得しました。中でもLaravelのRedis機能は広く使われており、開発者が効率的なキャッシュやキュー処理を実現するのに役立ちます。

Redis は、オープン ソースのインメモリ データ ストレージ システムであり、キーと値のペアに似た NoSQL データベースです。 Redis の特徴は、文字列、リスト、ハッシュ、セット、順序付きセットなど、さまざまなデータ構造をサポートできることです。また、高パフォーマンス、高可用性、拡張性、使いやすさという利点もあるため、開発では非常に人気があり、広く使用されています。次に、LaravelにおけるRedisの使い方を詳しく紹介していきます。

Redis の設定

Laravel で Redis を使用するには、まず Redis を設定する必要があります。 .env ファイルを開き、次の構成項目を見つけます:

CACHE_DRIVER=file
SESSION_DRIVER=file
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

その中で、CACHE_DRIVER はキャッシュ ドライバーを表します。デフォルト値は file です。ここでは、それを Redis、つまり

CACHE_DRIVER=redis
に変更する必要があります。

SESSION_DRIVER。同じ原則が適用されます。 REDIS_HOST は Redis サービスのアドレスを表します。デフォルトはローカル マシンの 127.0.0.1 です。REDIS_PASSWORD は Redis のパスワードを表します。使用できない場合は、null に設定する必要があります。 REDIS_PORT は、Redis サービスがリッスンするポートを示し、デフォルトは 6379 です。

使用状況をテストするために、ここで使用する Redis はパスワードを設定せずにローカル マシンにインストールされます。リモート Redis を使用している場合は、REDIS_HOST と REDIS_PORT を変更し、REDIS_PASSWORD も設定する必要があります。

Redis を使用したキャッシュ

Laravel での Redis を使用したキャッシュは非常に簡単です。 Cache クラスを使用してキャッシュにアクセスし、そのドライバーを Redis に設定するだけで、Redis をキャッシュに使用できるようになります。

値をキャッシュする

Redis を使用して値をキャッシュするにはさまざまな方法がありますが、ここでは最初に値のキャッシュについて紹介します。

use IlluminateSupportFacadesCache;

Cache::store('redis')->put('key', 'value', $seconds);

上記のコードは、Cache::store('redis') を通じて Redis キャッシュにアクセスし、put メソッドを使用してキーと値のペアをキャッシュします。このうち、$秒はキャッシュの有効期間を秒単位で表します。 $seconds の値が null の場合、キャッシュは期限切れになりません。

値の取得

値をキャッシュする機能は、後で値を直接取得できるようにすることです。 Laravel の Cache クラスを使用してこの値を取得できます。

use IlluminateSupportFacadesCache;

$value = Cache::store('redis')->get('key');

上記のコードは、Cache::store('redis') を通じて Redis キャッシュにアクセスし、get メソッドはキーに対応する値を取得します。

値を削除する

キャッシュを削除する必要がある場合は、次のコードを使用できます:

use IlluminateSupportFacadesCache;

Cache::store('redis')->forget('key');

上記のコードは、Cache::store('redis を通じてアクセスされます) ') Redis キャッシュの場合、forget メソッドは対応するキャッシュを削除します。

キャッシュが存在するかどうかを確認するには

キャッシュが存在するかどうかを確認するには、次のコードを使用できます。

use IlluminateSupportFacadesCache;

if (Cache::store('redis')->has('key')) {
    //
}

上記のコードは、Cache::store( を通じて Redis にアクセスします。 'redis') キャッシュでは、 has メソッドによってキーに対応する値が存在するかどうかが判断されます。

キュー処理に Redis を使用する

Laravel でキュー処理に Redis を使用するには、まずキュー サービス プロバイダーを導入する必要があります。 config/app.php ファイルを開き、プロバイダー配列を見つけて、次のコードを追加します:

'providers' => [
    // ...
    IlluminateQueueQueueServiceProvider::class,
    IlluminateRedisRedisServiceProvider::class,
    // ...
],

次に、キュー接続を構成する必要があります。 config/queue.php ファイルを開き、次の設定項目を変更します:

'connections' => [
    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => 'default',
        'retry_after' => 90,
        'block_for' => null,
    ],
],

このうち、driver は Redis ドライバーを使用することを意味し、connection は使用するキャッシュ接続を意味し、queue は使用するキュー名を意味し、retry_after は再試行することを意味します。 Time (秒); block_for は、タスクを取得するときのブロック時間を秒単位で表します。

タスクをキューにプッシュする

次に、次のコードを使用してタスクをキューにプッシュします。

use IlluminateSupportFacadesQueue;

Queue::push(new SendEmailJob($user));

上記のコードは Queue::push を使用します。 SendEmailJob をデフォルトのキューにプッシュするメソッド。このうち、SendEmailJob は、より複雑なロジックを実装できるカスタム タスク クラスです。

キュータスクの実行

タスクをキューにプッシュした後、次のコマンドを使用してタスクを実行する必要があります:

php artisan queue:work

上記のコマンドは、次のプロセスを開始します。キュータスクを実行します。サーバーに複数の CPU コアがある場合は、--daemon オプションを追加して複数のプロセスを開始することで、タスクの処理速度を向上させることができます。

まとめ

LaravelのRedis機能は非常に強力で、Redisと連携することで優れたキャッシュやキュー処理を実現できます。高い同時実行性と複雑なビジネスを扱う場合、Redis キャッシュとキューを使用すると、システムのパフォーマンスと安定性が大幅に向上します。この記事では、Laravel での Redis の使用法を簡単に紹介し、開発作業に役立つことを願っています。

以上がredisによるlaravelの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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