sql >> データベース >  >> NoSQL >> Redis

Redisオブジェクトキャッシュを使用してWordPressのインストールを高速化

    Redisはオープンソース(BSDライセンス)のメモリ内データ構造ストアであり、データベース、キャッシュ、メッセージブローカーとして使用されます。 MySQLなどの他のデータベースと組み合わせて、クエリをキャッシュするメカニズムを提供できます。

    この記事では、WordPressページのレンダリングに必要なMySQLクエリをキャッシュする方法を紹介します。これにより、いくつかの注意点はありますが、パフォーマンスが大幅に向上します。

    より優れたWordPressキャッシングの概要

    WordPressは、MySQLデータベースを使用して、生成にコストがかかる可能性のある内部アプリケーションオブジェクト(パンくずリスト、メニュー項目など)をキャッシュします。データベースはページリクエストのクエリも処理するため、これが最も一般的なボトルネックである可能性があり、多くの場合、読み込み時間が長くなります。

    Redisは、MySQLデータベースの代替として機能するキャッシュメカニズムを提供します。ユーザーがWordPressページにアクセスすると、ページの生成に必要なMySQLクエリは、結果をキャッシュするRedisを介して提供されます。これにより、静的ページに匹敵する非常に高速な読み込み時間が実現します。

    もう1つの一般的なキャッシュの選択肢は、Memcachedです。ただし、RedisはMemcachedが行うほとんどすべてのことを行うため、このチュートリアルでは、Redis™*用のScaleGridホスティングを使用します。

    Redisキャッシングはどのように機能しますか?

    ユーザーが初めてWordPressページをリクエストすると、サーバー上でMySQLクエリが実行されます。 Redisはこのクエリをキャッシュするため、別のユーザーが同じWordPressページをリクエストすると、データベースに再度クエリを実行しなくても、結果がRedisから提供されます。

    クエリがRedisにキャッシュされていない場合、結果はMySQLによって提供され、Redisキャッシュに追加されます。

    データベースで特定の値が更新されると、対応するRedis値が無効になり、不正なキャッシュデータがユーザーに提供されるのを防ぎます。

    チュートリアルの要件

    この記事で使用されているテクノロジーのリストは次のとおりです:

    • 2つのWordPressインストール(ベンチマーク用のプラグインありとなし)
    • Redis™サーバー
    • RedisWPオブジェクトキャッシュプラグイン
    RedisObjectCacheを使用してWordPressのインストールを高速化する方法クリックしてツイート

    WordPressのインストール

    最新バージョンのWordPressをここからダウンロードして、HerokuやAWSなどのホストに2つの異なるインストールをセットアップできます。

    Redisサーバー

    ScaleGridは、強化されたセキュリティ機能を備えたRedis™スタンドアロンおよびマスター/スレーブクラスターのワールドクラスのサポートを提供します。 ScaleGridでホストされているスタンドアロンRedis™クラスターをAllkeys-LRUキャッシング戦略で使用します。このチュートリアルを支援するために、Redis™のホスティングの30日間の無料トライアルにサインアップできます。

    RedisWPオブジェクトキャッシュプラグイン

    このプラグインは、WordPressインストールへのドロップインとして使用され、Redis™ホストを使用するように構成できます。プラグインはここにあります。

    セットアップ手順:WordPress用のRedisオブジェクトキャッシュ

    WordPressインストールにRedisObjectCacheプラグインをインストールする手順は次のとおりです。

    ステップ1:Redisキャッシュプラグインをインストールする

    このチュートリアルでは、WordPressの新規インストールがすでに2つ設定されていることを前提としています。それらの1つに、RedisObjectCacheプラグインをインストールする必要があります。プラグインがインストールされると、プラグインメニューからアクティブ化できます。

    ステップ2:設定でRedisを見つける

    プラグインがアクティブ化されると、[設定]メニューの下にRedisオプションが表示されます。

    ステップ3:WordPress構成を追加する

    プラグインを設定した後、WordPress構成ファイルに構成オプションを追加する必要があります。少なくとも、次のオプションを設定する必要があります。

    define('WP_REDIS_HOST', '');
    define('WP_REDIS_PASSWORD', '');
    

    上記のオプションは、Redis™のScaleGridクラスターの詳細ページにあります。

    構成を保存し、オブジェクトキャッシュを有効にします。認証が正しければ、次の画面が表示されます。

    この時点で、RedisはWordPressインストールのキャッシュとして構成されています。

    WordPressクエリの監視とデバッグ

    すべてのRedisクラスターには、WordPressからの着信クエリリクエストを監視するために使用できるRedisコマンドラインインターフェイス(redis-cli)ツールがインストールされています。これがどのように見えるかのスクリーンショットです:

    コンソールに出力が表示されない場合は、WordPressWebサイトにアクセスして更新してください。

    追跡するWordPressとRedisの指標

    ここで追跡する主な指標は、ページの読み込み時間です。新規インストールに使用しているデフォルトの構成は次のとおりです。

    • WordPress:4.9.5
    • Redis:v.4.0.2
    • WordPressのテーマ:27

    上記のパラメータを新たにインストールすると、ページの読み込み時間がほぼ50%短縮されます。

    • なし Redisオブジェクトキャッシュ=〜900ms
    • あり Redisオブジェクトキャッシュ=〜400ms

    Redisオブジェクトキャッシュのデメリット

    WordPressでRedisObjectCacheアプローチを使用する際の注意点がいくつかあります。多くのプラグインとテーマがインストールされている場合、キャッシュメカニズムはうまく機能しません。これは、すべてのデータをRedisでキャッシュする必要があるためです。

    以前の記事で、Node.js、Redis、Socket.ioを使用してツイートをキャッシュする方法を学ぶこともできます。

    いつものように、素晴らしいものを作成する場合は、@scalegridioでツイートしてください。 MongoDB®データベースまたはRedis™の管理またはホスティングについてサポートが必要な場合は、[email protected]までご連絡ください。


    1. RedisClient LUA API

    2. JestとRedis(データベースキャッシュのユニットテストの問題)

    3. TornadoからRedisを*適切に*クエリするにはどうすればよいですか?

    4. MongoDB $ arrayToObject