関数・クラス解説
Memcached::getMulti
version:PECL memcached >= 0.1.0 (公式)複数のアイテムを取得する
公式リファレンス
書式
public Memcached::getMulti ( array $keys [, int $flags ] ) : mixed
説明
Memcached::getMulti() は Memcached::get() と似ていますが、ひとつのキーのアイテムを取得するのではなく keys 配列で指定したキー群から複数のアイテムを取得します。
注意:
v3.0 より前のバージョンでは、二番目のパラメータ &cas_tokens が存在して、見つかったアイテムの CAS トークンが書き込まれるようになっていました。 この &cas_tokens パラメータは memcached 拡張モジュールの v3.0 で削除されました。 その代わりに追加されたのが Memcached::GET_EXTENDED フラグで、 これを flags に指定すれば CAS トークンを得られます。
flags パラメータを使用して、 Memcached::getMulti() 用の追加のオプションを設定します。 Memcached::GET_PRESERVE_ORDER は、要求したのと同じ順番でキーが返されることを保証します。 Memcached::GET_EXTENDED は、CAS トークンも含めて返すようにします。
パラメータ
- keys
- 取得したいキーの配列。
- flags
- 取得操作のオプション。
返値
見つかったアイテムの配列、失敗した場合に FALSE を返します。 必要に応じて Memcached::getResultCode() を使用しましょう。
更新履歴
バージョン | 説明 |
---|---|
PECL memcached 3.0.0 | &cas_tokens パラメータが削除されました。 Memcached::GET_EXTENDED が追加され、これをフラグとして渡すと CAS トークンも取得するようになりました。 |
サンプル
例1 Memcached::getMulti() example for Memcached v3
// Valid for v3 of the extension
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'));
var_dump($result);
上の例の出力は、たとえば以下のようになります。
array(2) {
["key1"]=>
string(6) "value1"
["key3"]=>
string(6) "value3"
}
例2 Memcached::getMulti() example for Memcached v1 and v2
// Valid for v1 and v2 of the extension
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
var_dump($result, $cas);
上の例の出力は、たとえば以下のようになります。
array(2) {
["key1"]=>
string(6) "value1"
["key3"]=>
string(6) "value3"
}
array(2) {
["key1"]=>
float(2360)
["key3"]=>
float(2362)
}
例3 Memcached v3 用の Memcached::GET_PRESERVE_ORDER の例
// Valid for v3 of the extension
$m = new Memcached();
$m->addServer('localhost', 11211);
$data = array(
'foo' => 'foo-data',
'bar' => 'bar-data',
'baz' => 'baz-data',
'lol' => 'lol-data',
'kek' => 'kek-data',
);
$m->setMulti($data, 3600);
$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, Memcached::GET_PRESERVE_ORDER);
foreach ($got as $k => $v) {
echo "$k $v\n";
}
上の例の出力は、たとえば以下のようになります。
foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo
例4 Memcached v1 および v2 用の Memcached::GET_PRESERVE_ORDER の例
// Valid for v1 and v2 of the extension
$m = new Memcached();
$m->addServer('localhost', 11211);
$data = array(
'foo' => 'foo-data',
'bar' => 'bar-data',
'baz' => 'baz-data',
'lol' => 'lol-data',
'kek' => 'kek-data',
);
$m->setMulti($data, 3600);
$null = null;
$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, $null, Memcached::GET_PRESERVE_ORDER);
foreach ($got as $k => $v) {
echo "$k $v\n";
}
上の例の出力は、たとえば以下のようになります。
foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール