WordPress オブジェクトキャッシング: ウェブサイトのパフォーマンスを簡単に向上させる
公開: 2022-06-09読み込みの遅い Web サイトは誰にも好まれません。 サイトの読み込みに 2 秒以上かかる場合、ユーザーはすぐにサイトを離れます。
Google によると、ウェブサイトは 2 秒以内に読み込まれるはずです。 それ以上、訪問者は興味を失い始めます。
サイトのパフォーマンス向上に関しては、WordPress のオブジェクト キャッシングが最も役立ちます。 サイトでオブジェクト キャッシングを適切に構成すると、訪問者に対するサイトの応答性を大幅に高めることができます。
オブジェクト キャッシングには、データベース クエリの保存が含まれます。WordPress サイトで有効にすると、PHP の実行時間を短縮し、データベースの負荷を軽減し、訪問者により速くコンテンツを配信できます。
WordPress の新規ユーザーで、WordPress のオブジェクト キャッシュについてよく知らない場合でも、心配する必要はありません。 今日、このブログでは、オブジェクト キャッシングについてすべて説明します。 だから、それについてもっと知るために読み続けてください.
WordPressでキャッシュはどのように機能しますか

WordPress オブジェクトのキャッシュに飛び込む前に、WordPress でキャッシュがどのように機能するかを簡単に見てみましょう。
訪問者があなたのウェブサイトに来るとき、基本的にこれが起こります:
- 世界中のどこからでもユーザーが Web サイトにアクセスし、そのブラウザーが Web サーバーに接続します。
- WordPress のインストールは、インストールされているデータベースにアクセスして、投稿やその他の保存データを取得します。
- Web サーバーは、このデータを HTML ページにコンパイルし、ユーザーに返します。
- サイトでキャッシュが有効になっている場合、サーバーはこのリクエストのコピーをキャッシュに作成します。
- 同様のリクエストが再度行われると、データベースではなくキャッシュから提供されます。
つまり、WordPress キャッシュは、訪問者が特定のページや投稿をリクエストするたびに動的コンテンツを生成することなく、サイトの静的ページを保存して訪問者に表示します。
これにより、サイトのパフォーマンスが大幅に向上します。特に、サイトで一度に大量のトラフィックを処理している場合に有効です。
WordPress オブジェクトキャッシングとは
キャッシングには、主にクライアント側キャッシングとサーバー側キャッシングの 2 種類があります。
クライアント側のキャッシュには多くの種類がありますが、おそらく最もよく知られているのはブラウザーのキャッシュです。 これは、ブラウザーが静的な Web ページ コンテンツを保存する場所であるため、次に誰かがサイトにアクセスしたときに、そのページは再度ダウンロードされるのではなく、コンピューターのキャッシュから取得されます。
オブジェクト キャッシングは、サーバー側キャッシングの一種です。 これは、キャッシュがユーザーのブラウザではなく、サーバーに保存されることを意味します。
オブジェクト キャッシングを有効にすると、サーバーはキャッシュ内で作成されたすべてのリクエストの複製を作成します。 次に同様のリクエストが行われると、データベースにクエリを実行する代わりに、最初にキャッシュがチェックされ、そこからリクエストが処理されます。

コピーが存在しない場合は、データベースに対して要求が行われ、処理およびコンパイルが行われます。 処理が完了すると、ブラウザに送り返され、将来の使用のためにキャッシュにコピーが作成されます。
したがって、オブジェクト キャッシングにより、サーバーがデータベースにクエリを実行する回数が最小限に抑えられます。 この設定により、特にトラフィックのピーク時にサーバーの負荷を軽減できます。
WordPressの「WP_Object_Cache」について解説
WordPress には組み込みのオブジェクト キャッシュがあり、それが WP_Object_Cache です。 これは、データベースのデータを PHP メモリに自動的に格納できる WordPress クラスです。 このようにして、データベースへの不要なクエリの繰り返しを防ぐことができます。
デフォルトでは、WordPress のオブジェクト キャッシュは非永続的です。つまり、単一のページ ロードのデータのみを保存します。 リクエストが終了すると、キャッシュ内のオブジェクトは破棄されます。
このため、永続的なキャッシュ ツールの使用を検討することをお勧めします。 このツールを使用すると、オブジェクトは複数のページの読み込みにわたってキャッシュされ、パフォーマンスがさらに向上します。
Redis や Memcached などの外部永続オブジェクト キャッシュ ソリューションを使用すると、リクエスト間でオブジェクト キャッシュを永続化できます。 これにより、サーバーのワークロードをさらに軽減しながら、データベース クエリの配信を高速化できます。
WordPress に最適な 3 つの永続オブジェクト キャッシング ツール
現在、いくつかの一般的な WordPress オブジェクト キャッシング ツールが利用可能です。 その中で、Redis、Memcached、APC は主にツールを使用しています。 それでは、一つ一つ確認していきましょう。
1.レディス

Redis は、MySQL データベースの負荷を軽減するのに役立つ、WordPress サイト用のオープンソース オブジェクト キャッシング ソリューションです。 サイトを拡大している場合やトラフィックを増やしている場合は、サイトにとって役立つツールになる可能性があります。
Redis は、ディスクや SSD ではなくメモリにデータを保存します。 これにより、高いパフォーマンスを発揮します。 組み込みのレプリケーションを提供します。 待ち時間を最小限に抑えるために、データをユーザーの場所の近くに配置できます。
Redis は、文字列、ハッシュ、リスト、セットなどの多くのデータ構造で動作します。 組み込みのレプリケーション、スクリプト、ディスク上の永続性など、多くの強力な機能が付属しています。 Redis Sentinel と Redis Cluster は、それぞれ高可用性と自動パーティショニングを含む追加機能を提供します。
Redis がサーバーにインストールされたら、Redis Object Cache などの Redis 互換プラグインを使用してサイトに接続できます。
2.Memcached

Redis と同様に、Memcached もオープンソースの分散メモリ キャッシュ システムです。 データベース、API 呼び出し、およびページ レンダリングをキャッシュするために使用されます。 データベースの負荷を軽減することで、アプリケーションの速度を向上させるのに役立ちます。
Memcached は、各項目にキー、有効期限、生データを割り当てます。 ユーザーがコンテンツまたはデータの一部を要求すると、Memcached は最初にキャッシュを調べてそこに保存されているかどうかを確認します。 そうであれば、そこからデータを取得し、データベースをチェックする必要はありません。
データがキャッシュにない場合、Memcached は呼び出し元のアプリケーションに失敗コードを返します。 その後、アプリケーションは別の場所からデータを取得し、必要に応じて新しいデータを Memcached に再送信します。 get_option、get_postmeta などの WordPress 関数は、キャッシュされたデータを使用します。
サイトで使用できる Memcached 互換のプラグインが多数用意されています。 その中でも、W3 Total Cache は非常に人気のあるプラグインです。
3.APC
APC または Alternative PHP Cache は、PHP 用の無料のオープンソース キャッシュ プラグインです。 APC キャッシュを使用すると、動的な PHP の実行を削減することで、PHP スクリプトの実行をより効率的に実行できます。
APC は、PHP キャッシングのみに焦点を当てているため、Redis や Memcached とは異なります。 動的な PHP の実行を減らすことで、スクリプトの実行が効率的に実行されます。 ブラウザーがページ リクエストを行うと、サーバーは PHP スクリプトのコードを解析し、ユーザーのブラウザーにページとして表示される結果の HTML コードを生成します。
APC は PHP にロードできる PECL モジュールですが、サーバー レベルで動作するため、共有ホスティング サーバーでは実行できません。 VPS または専用サーバーを使用していて、PECL モジュールのインストールに慣れている場合は、先に進んでサイトに APC をインストールできます。
WordPress サイトで永続オブジェクト キャッシングを有効にする方法

ここでは、Homebrew を使用して macOS に Redis をインストールする方法を紹介します。 Homebrew は、 Redis を macOS にインストールする最も簡単な方法です。 このチュートリアルに従って、Linux および Windows に Redis をインストールできます。

1.前提条件
まず、Homebrew がインストールされていることを確認します。 ターミナルから、次を実行します。
$ brew --version
このコマンドが失敗した場合は、Homebrew のインストール手順に従う必要があります。
2. インストール
ターミナルから、次を実行します。
brew install redis
これにより、Redis がシステムにインストールされます。
3. フォアグラウンドでの Redis の起動と停止
Redis のインストールをテストするには、コマンド ラインからredis-server
実行可能ファイルを実行します。
redis-server
成功すると、Redis の起動ログが表示され、Redis がフォアグラウンドで実行されます。
Redis を停止するには、 Ctrl-C
を入力します。
4. Launched を使用した Redis の起動と停止
Redis をフォアグラウンドで実行する代わりに、 launchd
使用してバックグラウンドでプロセスを開始することもできます。
brew services start redis
これにより Redis が起動し、ログイン時に再起動します。 次のコマンドを実行して、 launchd
で管理されている Redis のステータスを確認できます。
brew services info redis
サービスが実行されている場合は、次のような出力が表示されます。
redis ( homebrew.mxcl.redis ) Running: Loaded: User: miranda PID:
サービスを停止するには、次を実行します。
brew services stop redis
5. Redis への接続
Redis が実行されたら、 redis-cli
を実行してテストできます。
redis-cli
これにより、Redis REPL が開きます。 いくつかのコマンドを実行してみてください:
127.0.0.1:6379> lpush demos redis-macOS-demo OK 127.0.0.1:6379> rpop demos "redis-macOS-demo"
6. Redis Object Caching Plugin のインストールと有効化
Redis に接続したら、Redis Object Cache プラグインをサイトに追加できます。
プラグインをインストールしてアクティブ化したら、ダッシュボードで[設定] > [Redis]に移動します。 次に、[オブジェクト キャッシュを有効にする] ボタンをクリックして、サイトでオブジェクト キャッシュを有効にします。

それでおしまい! サイトで WordPress オブジェクト キャッシングを有効にしました。
おまけ: Dokan Multivendor は WordPress オブジェクトキャッシングと互換性がありますか?

これは、Dokan ユーザーが定期的に尋ねる質問の 1 つです。Dokan は WordPress オブジェクト キャッシングと互換性がありますか?
はい! Dokan が WordPress オブジェクト キャッシングと互換性を持つようになりました。 Dokan 最新バージョン Dokan 3.5.0 以降のバージョンを使用している場合は、オブジェクト キャッシングを有効にして、サイトで Dokan をシームレスに使用できます。
そのため、Redis や Memcached などの WordPress オブジェクト キャッシュ ソリューションをサーバーにインストールし、W3 Total Cache や Redis Object Cache などの互換性のあるプラグインを使用してサイトに接続します。 次に、オンライン マーケットプレイスに Dokan マルチベンダー プラグインを使用して、WordPress オブジェクト キャッシングのメリットを最大限に活用してください。
Dokan マルチベンダー プラグインの以前のバージョン (Dokan 3.5 より前) は、オブジェクト キャッシュをサポートしていませんでした。 しかし、Dokan 3.5 バージョンのリリース後、WordPress のオブジェクト キャッシングと完全に互換性を持つようになりました。
WordPress オブジェクトキャッシング – よくある質問
キャッシングとは、コンテンツの静的バージョンを作成し、それを訪問者に提供するプロセスを指します。 通常、静的ページはブラウザですばやくレンダリングされます。 これにより、Web サイトのパフォーマンスが向上します。
トランジェントは 1 秒または 1 日続くことができますが、実際にはどれくらいの時間存在させたいかによって異なります。 ただし、有効期限を過ぎるとなくなります。 つまり、有効期限を設定でき、有効期限まで持続します。
データベースの負荷を軽減することで、サイトのパフォーマンスを向上させます。 サイトでキャッシュ ソリューションを有効にすると、Web サイトの静的バージョンをキャッシュに保存できます。 これにより、WordPress は、サイトが読み込まれるたびに重い PHP スクリプトの実行をスキップできます。
WordPress は期限切れのトランジェントを自動的に削除しません。 データベースの wp_options テーブル内に存在するこれらの有効期限が切れたが削除されていない一時的なものは、数か月から数年にわたって、速度を低下させ、サイトのパフォーマンスを低下させる可能性があります。 このため、期限切れのトランジェントを削除して、WordPress サイトのパフォーマンスを改善する必要があります。
はい、WordPress には WP_Object_Cache と呼ばれる組み込みのオブジェクト キャッシュがあります。 2005 年に導入され、データベースから PHP メモリにデータを自動的に保存して、クエリの繰り返しを防ぐ方法を提供します。
オーバー・トゥ・ユー
WordPress サイトのパフォーマンスを向上させたい場合、WordPress のオブジェクト キャッシングは非常に重要です。 サイトが読み込まれるたびに重い PHP スクリプトを実行しないことで、サーバーの負荷を軽減できます。 代わりに、要求されたファイルの静的バージョンをキャッシュから訪問者に表示します。
チュートリアルに従って、サイトでオブジェクト キャッシングをセットアップおよび構成できます。 また、Dokan は WordPress のオブジェクト キャッシングと完全に互換性があるため、オンライン マーケットプレイスでオブジェクト キャッシングを有効にして Dokan をスムーズに使用できます。
これで、オブジェクト キャッシングに関する説明は終わりです。 今ではあなたの番です。 サイトでオブジェクト キャッシングを有効にし、サイトでキャッシングを構成する際に問題が発生した場合は、下のコメント ボックスからお知らせください。 できるだけ早く問題を解決したいと考えています。