使いかた

MySQL の接続と Memcache の接続の関連づけを mysqnd_memcache_set() で設定したら、 プラグインは透過的に、 SQL の SELECT 文を memcache へのアクセスに変換します。 そのため、このプラグインは実行されるすべての SQL 文を監視しており、 MYSQLND_MEMCACHE_DEFAULT_REGEXP にマッチする文がないかどうかを探します。 マッチする文が見つかれば、mysqlnd memcache プラグインはその内容をチェックします。 SELECT がアクセスするカラムが マップされているテーブルのものだけであること、 そして WHERE 句が単一キーのルックアップに限定されていることを確かめます。

この例の SQL テーブルの場合、プラグインは、 MySQL サーバーの Memcache インターフェイスを使って SELECT f1, f2, f3 WHERE id = n のような SQL クエリーの結果を取得します。

例1 基本的な例

<?php
$mysqli 
= new mysqli("host""user""passwd""database");
$memc = new Memcached();
$memc->addServer("host"11211);
mysqlnd_memcache_set($mysqli$memc);

/*
   これは test テーブルへの問い合わせです。WHERE 句のキーとして
   id を使い、フィールド f1、f2 そして f3 にアクセスします。
   そこで、mysqlnd_memcache はこれを横取りして memcache 経由で処理します。
*/
$result $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
while (
$row $result->fetch_row()) {
    
print_r($row);
}

/*
   これは test テーブルへの問い合わせですが、WHERE 句に f1 を使っています。
   そのため、mysqlnd_memcache はこれを横取りしません。
   MySQL プロトコルを使って処理します。
*/
$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");
while (
$row $result->fetch_row()) {
    
print_r($row);
}
?>

上の例の出力は以下となります。

array(
    [f1] => Hello
    [f2] => World
    [f3] => !
)
array(
    [id] => 2
)