この記事では、主に Redis を使用して Web サイトのキャッシュ読み取りを実装するための関連情報を紹介します。この記事では、学習や仕事に役立つ特定の学習価値があります。一緒に学びましょう。
redis の概要
Redis は完全にオープンソースで無料で、BSD プロトコルに準拠しており、高性能です。キーと値のデータベース。 Redis およびその他の Key-Value
キャッシュ製品には、次の 3 つの特徴があります。 Redis はデータの永続性をサポートしており、データをディスク上のメモリに保持し、再起動時に再ロードして使用できます。
Redis は、単純なキーと値の型のデータをサポートするだけでなく、リスト、セット、zset、ハッシュなどのデータ構造のストレージも提供します。
Redis はデータ バックアップ、つまりマスター/スレーブ モードでのデータ バックアップをサポートしています。
Redis の利点
非常に高いパフォーマンス – Redis は 110,000 回/秒の速度で読み取ることができます書き込み速度は81000回/秒です。
豊富なデータ型 – Redis は、バイナリの場合の文字列、リスト、ハッシュ、セット、および順序付きセットのデータ型操作をサポートします。
アトミック - Redis のすべての操作はアトミックであり、Redis は完全にマージされた後のいくつかの操作のアトミック実行もサポートします。
豊富な機能 – Redis は、パブリッシュ/サブスクライブ、通知、キーの有効期限などの機能もサポートしています。
redis のインストール方法
1.Ubuntu (Homestead 環境の仮想マシンを使用しているため)は Ubuntu なので、インストールにはこの方法のみを使用しました)
公式 Ubuntu インストール方法
$sudo apt-get update $sudo apt-get install redis-server
私の Web サイトのため、使用する laravel フレームワークは、composer メソッドを使用してインストールする必要があります。
composer require predis/predis
Lumen マイクロフレームワークをインストールする場合は、illuminate/redis (5.2.2.1) もインストールする必要があります。 *)
composer require illuminate/redis (5.2.*)
構成
ルーメンが取り付けられている場合
//需要在bootstrap/app.php里面加入此段代码 $app->register(Illuminate\Redis\RedisServiceProvider::class); $app->configure('database');
'redis' => [ 'cluster' => false, 'default' => [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], ],
クラスター オプションは、複数の Redis ノード間でシャーディングを実行するかどうかを示します。ここでは 1 つのノードのみをローカルでテストするため、false に設定します。
デフォルト オプションは、デフォルトの Redis ホスト接続を示します。ここでは、Redis と Web サーバーがホストを共有するため、ホストは 127.0.0.1 で、Redis のデフォルト ポートは 6379 です。
さらに、デフォルト オプションでは、さらに多くの接続パラメータ (必要な場合) もサポートされています。
意味 | デフォルト値 | |
---|---|---|
サーバーIPアドレス/ホスト名 | 127.0.0.1 | |
Redisサーバーリスニングポート番号 | 6379 | |
サーバーには認証パスワードが必要です | パスワードを使用しないでください | |
データベース インデックスが選択されるときに選択されます。接続中 | インデックスが設定されていません | |
Redis サーバーへの接続のタイムアウト | 5 秒read_write_timeout | |
システムのデフォルト (タイムアウトは制限されていません) |
'redis' => [ 'driver' => 'redis', 'connection' => 'default', ],
私のアイデアは、読み取り時に最初にキャッシュに移動するということです。見つけられたらラッキーです。見つからない場合は、データベースにアクセスして検索し、キャッシュに転送します。
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; }
$values = Cache::remember($key,$time,function () { return DB::select($this->sql); });
Laravel フレームワークのルーティングとコントローラーのバインディング操作について
Laravel のライフサイクルについてフレームワークと原理分析
以上がLaravelのRedisを使用してWebサイトのキャッシュ読み取りを実装する方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。