Php/docs/mysqlnd-memcache.quickstart.usage

提供:Dev Guides
< Php
移動先:案内検索

使いかた

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
)