関数・クラス解説

mysqlnd_memcache_get_config

version:PECL mysqlnd_memcache >= 1.0.0 (公式)

プラグインの設定情報を返す

公式リファレンス

書式

mysqlnd_memcache_get_config ( mixed $connection ) : array

説明

この関数は、MySQL 接続にアタッチされた mysqlnd_memcache 関連のすべての設定情報を配列で返します。 MySQL、mysqlnd_memcache_set() で渡した Memache オブジェクト、 自動的に MySQL サーバーから取得したテーブルマッピング情報などが含まれます。

パラメータ

connection
MySQL サーバーへのハンドル。 PDO_MYSQL、mysqli あるいは ext/mysql のいずれかの MySQL API 拡張モジュールを利用するもの。

返値

成功した場合に mysqlnd_memcache の設定情報の配列、それ以外の場合に FALSE を返します。 返される配列にはこれらの要素が含まれます。

mysqlnd_memcache_get_config() が返す配列の構造
配列のキー 説明
memcached この MySQL 接続に mysqlnd_memcache_set() で関連づけた Memcached のインスタンス。 これを使って memcache 接続の設定を変更することもできるし、 この接続上のサーバーに直接問い合わせて設定を変更することもできます。
pattern サーバーに送信された SQL クエリーにマッチさせるための PCRE 正規表現。 このパターンにマッチするクエリーをさらに分析し、 そのクエリーを横取りして memcache インターフェイスに送るのか 普通の MySQL プロトコルでサーバーに送るのかを判断します。 デフォルトのパターン (MYSQLND_MEMCACHE_DEFAULT_REGEXP) を使うか、あるいは mysqlnd_memcache_set() でパターンを設定します。
mappings プラグイン側から探す、すべての設定済みコンテナの一覧を含む連想配列。 要素のキーが、MySQL の設定内のコンテナ名になります。 その値については後で説明します。このフィールドの中身を作るには、 mysqlnd_memcache_set() で MySQL と memcache の接続を関連づけるときに MySQL Server に問い合わせます。
mapping_query mysqlnd_memcache_set() で、利用可能なコンテナとマッピングを識別するときに使う SQL クエリー。 このクエリーの結果を mappings 要素に渡します。
mappings エントリの構造
配列のキー 説明
prefix memcache 経由でデータにアクセスするときに使うプレフィックス。 MySQL InnoDB Memcache Deamon プラグインの場合、通常は @@ で始まって、最後は変更可能なセパレータになります。 このプレフィックスは、memcache プロトコルを使うときにキーの値の前に置かれます。
schema_name アクセスするテーブルを含むスキーマ (データベース) の名前。
table_name memcache プロトコルでアクセス可能なデータを含むテーブルの名前。
id_field_name memcache 経由でテーブルにアクセスするときに、キーとして使う id が含まれるフィールド (カラム) の名前。たいていは、主キーが設定されているフィールドとなります。
separator フィールドの値を分割するときに使うセパレータ。 memcache が単一の値にしかアクセスできないのに対して MySQL は複数のカラムをこの値に押し込めることができるので、 このセパレータが必要になります。
注意: セパレータは MySQL Server で設定できますが、 memcache 経由できる値を使ってはいけません。 そんなことをしたら、きちんとしたマッピングが保証できなくなるからです。
fields このマッピングで利用可能なすべてのフィールド名の配列。

サンプル

例1 mysqlnd_memcache_get_config() の例

$mysqli = new mysqli("host", "user", "passwd", "database"); $memc = new Memcached(); $memc->addServer("host", 11211); mysqlnd_memcache_set($mysqli, $memc); var_dump(mysqlnd_memcache_get_config($mysqli));

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

array(4) { ["memcached"]=> object(Memcached)#2 (0) { } ["pattern"]=> string(125) "/^\s*SELECT\s*(.+?)\s*FROM\s*`?([a-z0-9_]+)`?\s*WHERE\s*`?([a-z0-9_]+)`?\s*=\s*(?(?=["'])["']([^"']*)["']|([0-9e\.]*))\s*$/is" ["mappings"]=> array(1) { ["mymem_test"]=> array(6) { ["prefix"]=> string(13) "@@mymem_test." ["schema_name"]=> string(4) "test" ["table_name"]=> string(10) "mymem_test" ["id_field_name"]=> string(2) "id" ["separator"]=> string(1) "|" ["fields"]=> array(3) { [0]=> string(2) "f1" [1]=> string(2) "f2" [2]=> string(2) "f3" } } } ["mapping_query"]=> string(209) " SELECT c.name, CONCAT('@@', c.name, (SELECT value FROM innodb_memcache.config_options WHERE name = 'table_map_delimiter')) AS key_prefix, c.db_schema, c.db_table, c.key_columns, c.value_columns, (SELECT value FROM innodb_memcache.config_options WHERE name = 'separator') AS sep FROM innodb_memcache.containers c" }

参考

  • mysqlnd_memcache_set() - MySQL の接続を Memcache の接続と関連づける
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール