Memcache モジュールは、memcached に対する手続き型および オブジェクト指向のインターフェイスを提供します。これは非常に効率的な キャッシュデーモンで、動的な web アプリケーションでの データベースの読み込み量を減らすように設計されています。
memcached についてのより詳細な情報は http://www.danga.com/memcached/ にあります。
このモジュールは、その場でのデータ圧縮機能をサポートするために zlib の関数を使用しています。 このモジュールをインストールするには Zlib が必要となります。
memcache 拡張モジュールを使用するには、PHP 4.3.3 以降が必要です。
この PECL 拡張 モジュールは PHP にバンドルされていません。 この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 http://pecl.php.net/package/memcache.
これらの関数を使用するには、
--enable-memcache[=DIR]
オプションを
指定し、Memcache のサポートを有効にして PHP をコンパイルする必要があります。
オプションで、memcache セッションハンドラのサポートを無効にすることもできます。
その場合は --disable-memcache-session
を指定します。
Windows ユーザがこれらの関数を使用するには、php.ini の中で php_memcache.dll を有効にします。 この PECL 拡張モジュール用の DLL は、PHP のダウンロード ページあるいは http://pecl4win.php.net/ からダウンロードできます。
php.ini の設定により動作が変化します。
表 1. Memcache 設定オプション
名前 | デフォルト | 変更の可否 | 変更履歴 |
---|---|---|---|
memcache.allow_failover | "1" | PHP_INI_ALL | Memcache 2.0.2 以降で使用可能です |
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Memcache 2.1.0 以降で使用可能です |
memcache.chunk_size | "8192" | PHP_INI_ALL | Memcache 2.0.2 以降で使用可能です |
memcache.default_port | "11211" | PHP_INI_ALL | Memcache 2.0.2 以降で使用可能です |
session.save_handler | PHP_INI_ALL | Memcache 2.1.2 以降で使用可能です | |
session.save_path | PHP_INI_ALL | Memcache 2.1.2 以降で使用可能です |
以下に設定ディレクティブに関する 簡単な説明を示します。
memcache.allow_failover
booleanエラー時に、透過的なフェイルオーバーを行うかどうかを指定します。
memcache.max_failover_attempts
integerデータの設定や取得を試みるサーバの数を指定します。 memcache.allow_failover を指定した場合にのみ使用します。
memcache.chunk_size
integerデータは、ここで指定した大きさに分割されます。 この値を小さくすると、ネットワークに対する書き込みが多くなります。 不可解な速度低下が発生する場合は、この値を 32768 まで大きくしてください。
memcache.default_port
stringmemcached サーバに接続する際に、 デフォルトで使用される TCP ポート番号。
session.save_handler
stringmemcache をセッションハンドラとして使用するには、この値を memcache と設定します。
session.save_path
stringセッションを格納するためのサーバの URL を、カンマ区切りで指定します。たとえば "tcp://host1:11211, tcp://host2:11211" のようになります。
個々の URL には、そのサーバ用のパラメータを含めることができます。これは Memcache::addServer() メソッドと同じ形式です。たとえば "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15" のようになります。
memcache モジュールで使用されるリソースは 1 種類で、それは キャッシュサーバとの接続を指す ID です。
表 2. MemCache 定数
名前 | 説明 |
---|---|
MEMCACHE_COMPRESSED (integer) | Memcache::set()、 Memcache::add() そして Memcache::replace() を実行する際に、同時にデータの圧縮を行います。 |
上の例では、オブジェクトをキャッシュに保存した後に、改めて取得しなおします。 オブジェクトやその他の非スカラー型のデータは、保存される前に シリアライズされます。そのため (接続 ID などの) リソース型を 保存することはできません。