Laravel基礎教程——Redis
4433 ワード
Redis
概要
Redisはオープンソースで効率的なキー値対ストレージシステムです.通常、キー値ペアは、文字列、ハッシュ、リスト、コレクション、および秩序化されたコレクションをサポートするデータ構造サーバとして格納されます.LaravelでRedisを使用する前に、24,5679142パッケージ(~1.0)をComposerでインストールする必要があります.
コンフィギュレーション
Redisのアプリケーション内のプロファイルは
開発にとって、デフォルトの構成はほとんどのアプリケーションを満たすことができます.しかし、あなたの環境でこの構成を自由に変更することができます.Redisサービスの名前を簡単に追加し、対応するサーバアドレスとポートを指定できます.
また、Redis接続定義に
Redisサーバが認証メカニズムを導入した場合は、Redisサービス構成配列に
注意:PECLでインストールされているRedis PHP拡張子の場合は、
基本的な使い方
もちろん、前述したように、
また、
マルチRedis接続の使用
これは、デフォルトのRedisサーバのインスタンスを返します.クラスタ・サービスを使用していない場合は、プロファイルで定義したサービス名を
パイプラインコマンド
パイプラインパイプラインでは、1つの操作でRedisサーバに対して複数のコマンドを実行できます.
パブリッシュ
Laravelはまた、Redisの
ワイルドカードの購読
概要
Redisはオープンソースで効率的なキー値対ストレージシステムです.通常、キー値ペアは、文字列、ハッシュ、リスト、コレクション、および秩序化されたコレクションをサポートするデータ構造サーバとして格納されます.LaravelでRedisを使用する前に、24,5679142パッケージ(~1.0)をComposerでインストールする必要があります.
コンフィギュレーション
Redisのアプリケーション内のプロファイルは
predis/predis
に格納される.このファイルには、Redisサービス情報を含むconfig/database.php
配列が表示されます.'redis' => [
'cluster' => false,
'default' => [
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
],
],
開発にとって、デフォルトの構成はほとんどのアプリケーションを満たすことができます.しかし、あなたの環境でこの構成を自由に変更することができます.Redisサービスの名前を簡単に追加し、対応するサーバアドレスとポートを指定できます.
redis
オプションは、Laravel RedisクライアントがRedisクラスタ内でクライアントのスライスを行うことを示します.これにより、ノードプールを構成し、効率的なRAMを大量に作成できます.しかし、クライアントスライスはフェイルオーバを処理できないことに注意してください.したがって、主に1つのプライマリ・データ・ストレージ・アドレスから使用可能なキャッシュ・データを取得するために使用されます.また、Redis接続定義に
cluster
配列を追加することで、Predisのクライアントオプションを指定できます.Redisサーバが認証メカニズムを導入した場合は、Redisサービス構成配列に
options
構成項目を追加してパスワードを指定する必要があります.注意:PECLでインストールされているRedis PHP拡張子の場合は、
password
ファイルでRedisの別名の名前を変更する必要があります.基本的な使い方
config/app.php
仮面の様々な方法を使ってRedisと対話することができます.Redis
仮面はダイナミックメソッドをサポートしています.これは、Redis
仮面で任意のRedisコマンドを呼び出すことができ、仮面が直接Redisにコマンドを渡すことを意味します.たとえば、Redis
仮面のRedis
メソッドを使用して、get
コマンドを呼び出します. $user]);
}
}
もちろん、前述したように、
GET
の仮面を通じてRedisコマンドを呼び出すことができます.Laravelはマジックメソッドを使用してRedisサーバに渡すため、コマンドに必要なパラメータを直接簡単に渡すことができます.Redis::set('name', 'Taylor');
$value = Redis::lrange('names', 5, 10);
また、
Redis
メソッドでコマンドをサーバに渡すこともできます.コマンド名として最初のパラメータ、2番目のパラメータ配列をコマンドのパラメータ値として受信します.$values = Redis::command('lrange', ['name', 5, 10]);
マルチRedis接続の使用
command
メソッドを使用してRedisのインスタンスを取得できます.$redis = Redis::connection();
これは、デフォルトのRedisサーバのインスタンスを返します.クラスタ・サービスを使用していない場合は、プロファイルで定義したサービス名を
Redis::connection
メソッドに渡すことができます.$redis = Redis::connection('other');
パイプラインコマンド
パイプラインパイプラインでは、1つの操作でRedisサーバに対して複数のコマンドを実行できます.
connection
メソッドは、Redisのインスタンスを受信するpipeline
というパラメータを受信する.すべてのコマンドを閉パッケージで発行できます.これらのコマンドは、1つの操作で処理されます.Redis::pipeline(function ($pipe) {
for ($i = 0; $i < 1000; $i++) {
$pipe->set("key:$i", $i);
}
});
パブリッシュ
Laravelはまた、Redisの
Closure
およびpublish
コマンドに便利なインタフェースを提供している.これらのRedisコマンドは、指定されたチャンネルを通じて情報を傍受することを許可します.他のアプリケーションからチャンネルに情報を公開することができます.さらに、他の言語で公開することができます.アプリケーション/プロセス間で簡単に通信できます.
subscribe
メソッドを使用して、チャンネルに情報を公開できます.Route::get('publish', function () {
// Route logic...
Redis::publish('test-channel', json_encode(['foo' => 'bar']));
})
ワイルドカードの購読
publish
メソッドを使用して、ワイルドカードが一致するチャネルを購読することができます.これは、通常、チャネル内のすべてのメッセージをキャプチャするために使用されます.psubscribe
変数は、$channel
の2番目のパラメータに自動的に渡されます.Redis::psubscribe(['*'], function ($message, $channel) {
echo $message;
});
Redis::psubscribe(['users.*'], function ($message, $channel) {
echo $message;
});