ホームページ  >  記事  >  バックエンド開発  >  LaravelのRedisを使用してWebサイトのキャッシュ読み取りを実装する方法について

LaravelのRedisを使用してWebサイトのキャッシュ読み取りを実装する方法について

不言
不言オリジナル
2018-06-13 09:46:312155ブラウズ

この記事では、主に 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 はメインデータベースとして使用できるため、Laravel の Redis の構成情報は config/database.php にあります:

#
'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 です。

さらに、デフォルト オプションでは、さらに多くの接続パラメータ (必要な場合) もサポートされています。

パラメータ意味hostポートパスワードdatabaseデータベース インデックスが選択されるときに選択されます。接続中#timeout5 秒read_write_timeoutネットワーク接続を介した読み取りおよび書き込み操作のタイムアウトread_write_timeout |ネットワーク接続を介した読み取りおよび書き込み操作のタイムアウト|システムのデフォルト (タイムアウトが制限されていない場合は -1 に設定されます)

デフォルト値
サーバーIPアドレス/ホスト名 127.0.0.1
Redisサーバーリスニングポート番号 6379
サーバーには認証パスワードが必要です パスワードを使用しないでください

インデックスが設定されていません

Redis サーバーへの接続のタイムアウト

システムのデフォルト (タイムアウトは制限されていません)

さらに、Redis をキャッシュ ツールとして使用する場合は、config/cache.php で redis オプションを構成する必要もあります:

'redis' => [

'driver' => 'redis',
'connection' => 'default',
],

ここでの接続は、config/database Host のデフォルト設定のデフォルト 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のキャッシュには記憶機能も提供されています

 $values = Cache::remember($key,$time,function () {
   return DB::select($this->sql);
  });

キャッシュされている場合は、キャッシュ項目がキャッシュに存在しない場合は、remember メソッドに返されたクロージャが実行され、クロージャの結果がキャッシュに保存されます。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

Laravel フレームワークのルーティングとコントローラーのバインディング操作について


Laravel のライフサイクルについてフレームワークと原理分析


以上がLaravelのRedisを使用してWebサイトのキャッシュ読み取りを実装する方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。