Laravel基礎教程——Redis

4433 ワード

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; 
});