PHP マニュアル
前のページ |  | 次のページ

# LXXXIV. Memcache 関数

# 導入

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 をコンパイルする必要があります。

Windows ユーザがこれらの関数を使用するには、`php.ini` の中で `php_memcache.dll` を有効にします。 この PECL 拡張モジュール の DLL を PHP ダウンロード ページ または http://snaps.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 以降で使用可能です

PHP_INI_* 定数の詳細および定義については 付録G を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

`memcache.allow_failover` boolean

  エラー時に、透過的なフェイルオーバーを行うかどうかを指定します。

`memcache.max_failover_attempts` integer

  データの設定や取得を試みるサーバの数を指定します。 memcache.allow_failover を指定した場合にのみ使用します。

`memcache.chunk_size` integer

  データは、ここで指定した大きさに分割されます。 この値を小さくすると、ネットワークに対する書き込みが多くなります。 不可解な速度低下が発生する場合は、この値を 32768 まで大きくしてください。

`memcache.default_port` string

  memcached サーバに接続する際に、 デフォルトで使用される TCP ポート番号。

# リソース型

memcache モジュールで使用されるリソースは 1 種類で、それは キャッシュサーバとの接続を指す ID です。

# 定義済み定数

表 2. MemCache 定数

名前 | 説明
--- | ---
`MEMCACHE_COMPRESSED` (integer) | Memcache::set()、 Memcache::add() そして Memcache::replace() を実行する際に、同時にデータの圧縮を行います。

# 例

例 1. memcache 拡張モジュールの概要

`<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("接続できませんでした");
$version = $memcache->getVersion();
echo "サーバのバージョン: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("データをサーバに保存できませんでした");
echo "データをキャッシュに保存します (データの有効期限は 10 秒です)<br/>\n";
$get_result = $memcache->get('key');
echo "キャッシュから取得したデータ:<br/>\n";
var_dump($get_result);
?>`

上の例では、オブジェクトをキャッシュに保存した後に、改めて取得しなおします。 オブジェクトやその他の非スカラー型のデータは、保存される前に シリアライズされます。そのため (接続 ID などの) リソース型を 保存することはできません。

前のページ | ホーム | 次のページ
m_verifysslcert | 上に戻る | Memcache::add