今日のインターネット時代では、ウェブサイトの応答速度はユーザーエクスペリエンスにとって重要です。一般的な開発言語として、PHPはデータキャッシングテクノロジーを使用してWebサイトのパフォーマンスを大幅に改善できます。この記事では、特定の技術的手段を使用して、データキャッシング、特にMemcachedおよびRedisキャッシュソリューションの使用を通じてWebサイトの応答速度を最適化する方法を探ります。
データキャッシュは、頻繁にアクセスされるデータをメモリに保存するため、要求するたびにデータベースへのアクセスを減らすことです。一般的なキャッシュタイプには、ページキャッシュ、データキャッシュ、クエリキャッシュが含まれます。ページキャッシュは、Webページのコンテンツ全体をキャッシュします。データキャッシュは結果の結果をクエリします。クエリキャッシュキャッシュキャッシュは、特定のクエリステートメントの結果をキャッシュします。
まず、memcachedをインストールする必要があります。次のコマンドを介してLinuxシステムにインストールできます。
sudo apt-getインストールMemcached
インストール後、構成ファイル `/etc/memcached.conf`を編集し、IPアドレス、ポート、キャッシュサイズ、その他のパラメーターを調整します。
PHPは、memcachedと通信するためのmemcached拡張機能を提供します。次のコードを介して、memcachedサービスに接続できます。
$ memcached = new memcached(); $ memcached-> addServer( '127.0.0.1'、11211);
次に、 `set()`および `get()`メソッドを使用して、キャッシュされたデータにアクセスできます。
//データの保存キャッシュ内部で、有効期間は602番です$ memcached-> set( 'key'、 'value'、60); // cache $ value = $ memcached-> get( 'key')からデータを得るします。
頻繁に実行されるSQLクエリの場合、クエリの結果をキャッシュしてMemcachedにキャッシュして、データベースクエリの数を減らすことができます。これが例です:
// query data $ sql = "select * from` users`ここで `id` =?"; $ stmt = $ pdo-> prepare($ sql); $ stmt-> execute([$ id]); $ user = $ stmt-> fetch(pdo :: fetch_assoc); //キャッシュが存在するするかどうかを確認します($ memcached-> get( 'user_'。$ id)){ // cache $ user = $ memcached-> get( 'user_'。$ id)からデータを得るします。 } それ以外 { //キャッシュは存在するしません。データベースをクエリして、cache $ memcached-> set( 'user_'。$ id、$ user、60)を保存します。 }
Memcachedと同様に、Redisは効率的なメモリデータストレージツールでもあります。次のコマンドでRedisをインストールできます。
sudo apt-get redis-serverをインストールします
インストールが完了したら、 `/etc/redis/redis.conf`構成ファイルを編集し、redisのリスニングアドレス、ポート、キャッシュサイズを設定します。
Memcachedと同様に、PHPはRedisサービスを接続および操作できるRedis拡張機能も提供します。 Redisに接続するコードは次のとおりです。
$ redis = new Redis(); $ redis-> connect( '127.0.0.1'、6379);
同様に、 `set()`および `get()`メソッドを使用してキャッシュを操作できます。
//データの保存キャッシュ内部で、有効期間は602番です$ redis-> set( 'key'、 'value'、60); // cache $ value = $ redis-> get( 'key')からデータを得るします。
Redisは、SQLクエリの結果をキャッシュするためにも使用できます。以下は具体的な例です。
// query data $ sql = "select * from` users`ここで `id` =?"; $ stmt = $ pdo-> prepare($ sql); $ stmt-> execute([$ id]); $ user = $ stmt-> fetch(pdo :: fetch_assoc); //キャッシュを確認するif($ redis-> get( 'user_'。$ id)){ // cache $ user = json_decode($ redis-> get( 'user_'。$ id)、true)からデータを得るします。 } それ以外 { //キャッシュは存在するしません。結果をクエリとキャッシュ$ redis-> set( 'user_'。$ id、json_encode($ user)、60); }
データキャッシングテクノロジーを通じて、ウェブサイトの応答速度を大幅に改善し、データベースの圧力を減らし、パフォーマンスを改善することができます。実際の開発では、ニーズに応じてMemcachedやRedisなどのキャッシュソリューションを選択し、最良の結果を達成するために特定の状況に合わせて最適化できます。