Memcached Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMulti — 여러 항목 검색


설명

public Memcached::getMulti(array $keys, int $flags = ?): mixed

Memcached::getMulti()Memcached::get()과 유사하지만 단일 키 항목 대신 keys 배열에 키가 지정된 여러 항목을 검색합니다.

메모: v3.0 이전에는 두 번째 인수 &cas_tokens가 사용되었습니다. 찾은 항목에 대한 CAS 토큰 값으로 채워져 있습니다. &cas_tokens 매개변수는 확장 버전 3.0에서 제거되었습니다. flags 값으로 사용해야 하는 새 플래그 Memcached::GET_EXTENDED로 교체되었습니다.

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 토큰을 가져올 수 있습니다.

Examples

예제 #1 Memcached::getMulti() Memcached v3의 예제

                  
<?php
// 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() Memcached v1 및 v2의 예제

                  
<?php
// 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::GET_PRESERVE_ORDER Memcached v3의 예제

                  
<?php
// 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::GET_PRESERVE_ORDER Memcached v1 및 v2의 예제

                  
<?php
// 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
                

기타