[ 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衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

Phpoopでは、self ::は現在のクラスを指し、親::は親クラスを指し、静的::は後期静的結合に使用されます。 1.Self ::静的方法と一定の呼び出しに使用されますが、後期静的結合をサポートしていません。 2.Parent ::サブクラスには、親クラスのメソッドを呼び出すために使用され、プライベートメソッドにアクセスできません。 3.Static ::継承と多型に適した後期静的結合をサポートしますが、コードの読みやすさに影響を与える可能性があります。

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。
