[ Laravel 5.2 ドキュメント ] サービス -- Redis
1. はじめに
Redis は、文字データをサポートするため、データ構造サーバーとしてよく使用されるオープンソースの高度なキー値ストレージ システムです。文字列、ハッシュ、リスト、セット、順序付きセットなどの構造。 Laravel で Redis を使用する前に、Composer を通じて predis/predis パッケージ (~1.0) をインストールする必要があります。
構成
アプリケーションの Redis 構成は、構成ファイル config/database.php にあります。このファイルでは、アプリケーションで使用される Redis サーバーを含む Redis 配列を確認できます。
'redis' => [ 'cluster' => false, 'default' => [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, ],],
デフォルトのサーバー構成は開発ニーズを満たすことができますが、環境に基づいて配列を自由に変更できます。各 Redis サーバーに名前を付け、Redis サーバーが使用するホストとインターフェイスを指定するだけです。
クラスター オプションは、Laravel Redis クライアントに、複数の Redis ノード間でクライアント側シャーディングを実行するように指示します。これにより、ノード プールが形成され、大量の有効な RAM が作成されます。ただし、クライアント側シャーディングはフェイルオーバーを処理しないため、別のプライマリ データ ストアから有効なキャッシュ データをフェッチするのに適しています。
さらに、Redis 接続定義でオプション配列値を定義して、Predis クライアント オプションの範囲を指定できるようにします。
Redis サーバーが認証情報を必要とする場合は、Redis サーバー構成配列にパスワード構成項目を追加することでパスワードを提供できます。
注: PECL を介して PHP の Redis 拡張機能をインストールする場合は、config/app.php ファイル内の Redis エイリアスを変更する必要があります。
2. 基本的な使用法
ファサードは動的メソッドをサポートしているため、任意の Redis コマンドを使用して Redis と対話できます。この例では、Redis ファサードで get メソッドを呼び出すことで、Redis で GET コマンドを呼び出します。
<?phpnamespace App\Http\Controllers;use Redis;use App\Http\Controllers\Controller;class UserController extends Controller{ /** * 显示指定用户属性 * * @param int $id * @return Response */ public function showProfile($id) { $user = Redis::get('user:profile:'.$id); return view('user.profile', ['user' => $user]); }}
もちろん、前述したように、任意の Redis コマンドを呼び出すことができます。 Redis のファサードにあります。 Laravel はマジック メソッドを使用して Redis サーバーにコマンドを渡すため、次のようにパラメーターと Redis コマンドを渡すだけです:
Redis::set('name', 'Taylor');$values = Redis::lrange('names', 5, 10);
さらに、コマンド メソッドを使用してコマンドをサーバーに渡すこともできます。最初のパラメータとしてコマンド名、2 番目のパラメータとしてパラメータ値配列:
$values = Redis::command('lrange', ['name', 5, 10]);
複数の Redis 接続を使用する
Redis::connection メソッドを呼び出すことで Redis インスタンスを取得できます:
$redis = Redis::connection();
これにより、デフォルトの Redis サーバー インスタンスが取得されます。サーバー クラスターを使用していない場合は、サーバー名を接続メソッドに渡して、指定された Redis 構成で定義された指定されたサーバーを取得できます。 >
$redis = Redis::connection('other');
パイプライン メソッドは、1 つの操作で複数のコマンドをサーバーに送信する必要がある場合に使用する必要があります。パイプライン メソッドは、Redis インスタンスを受け取るクロージャというパラメーターを受け取ります。すべての Redis コマンドをこの Redis インスタンスに送信すると、これらのコマンドが 1 回の操作で実行されます:
Redis::pipeline(function ($pipe) { for ($i = 0; $i < 1000; $i++) { $pipe->set("key:$i", $i); }});
3. Publish/Subscribe
Redis It Redis のパブリッシュおよびサブスクライブ コマンドを呼び出すためのインターフェイスも提供します。これらの Redis コマンドを使用すると、特定の「チャネル」でメッセージをリッスンでき、別のアプリケーションから、または他のプログラミング言語を使用してこのチャネルにメッセージをパブリッシュできるため、異なるアプリケーション/プロセス間で簡単に通信できるようになります。まず、subscribe メソッドを使用して、Redis 経由でチャネルにリスナーを設定しましょう。 submit メソッドを呼び出すと常駐プロセスが開始されるため、Artisan コマンドでこのメソッドを呼び出します:
<?phpnamespace App\Console\Commands;use Redis;use Illuminate\Console\Command;class RedisSubscribe extends Command{ /** * 控制台命令名称 * * @var string */ protected $signature = 'redis:subscribe'; /** * 控制台命令描述 * * @var string */ protected $description = 'Subscribe to a Redis channel'; /** * 执行控制台命令 * * @return mixed */ public function handle() { Redis::subscribe(['test-channel'], function($message) { echo $message; }); }}
Route::get('publish', function () { // 路由逻辑... Redis::publish('test-channel', json_encode(['foo' => 'bar']));});
psubscribe メソッドを使用すると、ワイルドカードで定義されたチャネルにサブスクライブできます。これは、対応するすべてのチャネル上のすべてのメッセージを取得する場合に便利です。 $channel 名は、指定されたコールバック クロージャの 2 番目のパラメータとして渡されます:
Redis::psubscribe(['*'], function($message, $channel) { echo $message;});Redis::psubscribe(['users.*'], function($message, $channel) { echo $message;});

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
