ホームページ >バックエンド開発 >PHPチュートリアル >laravelがRedisを使用してWebサイトのキャッシュを読み取る方法
Redis は完全にオープンソースで無料で、BSD プロトコルに準拠しており、高性能のキーと値のデータベースです。 Redis およびその他のキー値キャッシュ製品には、次の 3 つの特徴があります。 Redis はデータ永続性をサポートしています。これにより、データをディスク上のメモリに保持し、再起動時に再ロードして使用できます。
Redis は、単純なキーと値の型のデータをサポートするだけでなく、リスト、セット、zset、ハッシュなどのデータ構造のストレージも提供します。
Redis はデータ バックアップ、つまりマスター/スレーブ モードでのデータ バックアップをサポートしています。
Redis の利点
非常に高いパフォーマンス – Redis は 110,000 回/秒の速度で読み取り、81,000 回/秒の速度で書き込みます。
豊富なデータ型 – Redis は、バイナリの場合の文字列、リスト、ハッシュ、セット、順序付きセットのデータ型操作をサポートします。
アトミック - Redis のすべての操作はアトミックであり、Redis は複数の操作をマージした後のアトミック実行もサポートしています。
豊富な機能 – Redis は、パブリッシュ/サブスクライブ、通知、キーの有効期限などの機能もサポートしています。
redis のインストール方法
1. Ubuntu (Homestead 環境を使用しており、仮想マシンが Ubuntu であるため、この方法のみを使用してインストールしました。Windows の場合は、次のリンクにアクセスしてください) http://www.redis .net.cn/tutor または http://www.jb51.net/article/84071.htm... )
公式の Ubuntu インストール方法
$sudo apt-get update $sudo apt-get install redis-server
私の Web サイトではlaravel フレームワークをインストールするには、composer メソッドを使用する必要があります
composer require predis/predis
Lumen マイクロフレームワークをインストールする場合は、illuminate/redis (5.2.*) もインストールする必要があります
composer require illuminate/redis (5.2.*)
設定
lumenをインストールすると
//需要在bootstrap/app.php里面加入此段代码 $app->register(Illuminate\Redis\RedisServiceProvider::class); $app->configure('database');
Redisをメインデータベースとして使用できるため、LaravelのRedisの設定情報はconfig/database.phpにあります:
'redis' => [ 'cluster' => false, 'default' => [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], ],
クラスターオプションは、ここではローカルです。テストするノードは 1 つだけなので、false に設定します。
デフォルトのオプションは、デフォルトの Redis ホスト接続を示します。ここで、Redis と Web サーバーは同じホストを共有するため、ホストは 127.0.0.1 で、デフォルトの Redis ポートは 6379 です。
さらに、デフォルトのオプションでは、(必要に応じて) より多くの接続パラメータもサポートされています:
パラメータ | 意味 |
デフォルト値 |
---|---|---|
ホスト | サーバーIPアドレス/ホスト名 | 127.0.0.1 |
ポート | Redisサーバーのリスニングポート番号 | 6379 |
パスワード | サーバーが認証パスワードを必要とする場合 | パスワードを使用しないでください |
データベース |
選択済み接続時データベースインデックス |
インデックスが設定されていません |
タイムアウト |
Redisサーバーへの接続タイムアウト | 5秒 |
read_write_timeout | ネットワーク接続を介した読み取りおよび書き込み操作のタイムアウト | システムのデフォルト(タイムアウトに制限がない場合は、-1 に設定します) |
read_write_timeout | ネットワーク接続を介した読み取りおよび書き込み操作のタイムアウト | システムのデフォルト (タイムアウトに制限がない場合は、 -1)
さらに、Redis をキャッシュ ツールとして使用する場合は、config/cache.php で redis オプションを設定する必要もあります:
'redis' => [ 'driver' => 'redis', 'connection' => 'default', ],
ここでの接続は、redis のデフォルト ホストのデフォルト設定に対応します。設定/データベース内。
上記の構成が完了したら、アプリケーション コードでデータ アクセスに Redis を使用できるようになります。
例を見てみましょう—Laravel の mysql は Redis とペアになっています
私の考えでは、読み取るときに、まずキャッシュ内を検索して、見つかったらラッキーです。見つからない場合は、データベース内で検索してキャッシュに転送します。
if (Cache::has($key)){ //首先查寻cache如果找到 $values = Cache::get($>key); //直接读取cache return $values; }else{ //如果cache里面没有 $values = DB::select($sql); Cache::put($key,$value,$time); return $values; }
しかし、laravelのキャッシュにはremember関数も提供されています
$values = Cache::remember($key,$time,function () { return DB::select($this->sql); });
キャッシュが直接読み込んで返す場合、キャッシュ項目がキャッシュに存在しない場合はrememberメソッドに返されるクロージャが実行され、そしてクロージャの結果はキャッシュに保存されます。
関連する推奨事項:
以上がlaravelがRedisを使用してWebサイトのキャッシュを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。