WordPressでmemcachedを使用した高速化を試みる

オブジェクトキャッシュをmemcachedに置き換えできます。


WordPressプラグインの1つであるmemcached reduxプラグインを使用することで、WordPressのオブジェクトキャッシュをmemcachedに置き換えることができます。
memcachedはオブジェクトキャッシュに特化しており、かつオンメモリで実行されるため高速な動作を期待できます。

memcached reduxの導入

memcached reduxはプラグインですが、管理画面からの導入はできません。オブジェクトキャッシュという根幹の機能を入れ替えるドロップインであるためです。
導入するには、まずここ(https://ja.wordpress.org/plugins/memcached-redux/)からmemcached reduxプラグインをダウンロードする必要があります。
ダウンロードしファイルを展開すると、object-cache.phpファイルがディレクトリ内に入っていることがわかるはずです。このファイルをFTPやSFTPを使用してwp-contentディレクトリ直下にコピーします。
ファイルをコピーすると、WordPressはドロップインを自動的に認識し、機能するようになります。既定では、ローカルホストの11211ポートにあるmemcachedサーバーが利用されます。
なお、使用するためにはPHPでmemcacheおよびmemcachedクラスが利用可能な状態であることと、memcachedサーバーが利用可能であることが必要です。当該クラスが利用できない場合はyumやapt-getを使用するなどして導入してください。

アンインストールしたくなった時は、コピーしたobject-cache.phpファイルを削除してください。

ドロップインの衝突に注意

memcached reduxはWordPressのオブジェクトキャッシュ機構を置き換えるため、他の同種のプラグインとの併用はできません。具体的にはWP File Cacheが挙げられます。
これらのプラグインを既に使用している場合は、プラグインを停止する必要があります。

使用するサーバーの変更

memcachedサーバーが外部にあったり、複数台のmemcachedサーバーを使用したりしたい場合はwp-config.phpファイルで設定を変更することができます。
次のような配列をwp-configファイル内に記載することで、使用するサーバーを指定できます。
$memcached_servers = array( '127.0.0.1', '172.17.8.9' );

複数サイトでmemcachedを共有している場合

既定では、キャッシュのキーにはサイト固有の情報が含まれません。従って、複数のWordPressサイトで同一のmemcachedサーバーを共有している場合、キャッシュが衝突することになります。結果として別のサイトのキャッシュが読み込まれ動作に支障をきたす場合があります。
そのような場合は、次のような記載をwp-config.phpファイルに追記します。
define('WP_CACHE_KEY_SALT', md5( DB_NAME . $table_prefix . __FILE__ ) );
この記載を行うと、データベース名、テーブル接頭辞、実行ファイルのパスのハッシュ値を取った値がキーのソルトとして設定されるため衝突を回避できます。

広告