Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMultiПолучает несколько записей

Описание

publicMemcached::getMulti(array$keys, int$get_flags = 0): array|false

Memcached::getMulti() работает аналогично методу Memcached::get(), но вместо одной записи получает несколько, ключи которых были переданы в массиве keys.

Замечание:

До версии 3.0 использовался второй аргумент &cas_tokens. Он заполнялся значениями токена CAS для найденных записей. Параметр &cas_tokens был удалён в версии 3.0. Он был заменён новым флагом Memcached::GET_EXTENDED, который указывается в параметре get_flags.

Параметр get_flags может использоваться для указания дополнительных настроек для метода Memcached::getMulti(). На данный момент поддерживаются, только следующие настройки: Memcached::GET_PRESERVE_ORDER гарантирует что записи будут возвращены в том же порядке, что и были запрошены. Memcached::GET_EXTENDED ведёт к тому, что также будут извлечены токены CAS.

Список параметров

keys

Массив ключей для запроса.

get_flags

Флаги для операции получения записей.

Возвращаемые значения

Возвращает массив найденных записей или false, если возникла ошибка. Используйте при необходимости Memcached::getResultCode().

Список изменений

ВерсияОписание
PECL memcached 3.0.0 Удалён параметр &cas_tokens. Добавлена константа Memcached::GET_EXTENDED для возврата токенов CAS.

Примеры

Пример #1 Пример использования Memcached::getMulti() версии 3

<?php
// Работает с версией модуля 3

$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() версий 1 и 2

<?php
// Работает с версиями модуля 1 и 2

$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 с версией 3

<?php
// Работает с версией модуля 3

$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 с версией 1 и 2

<?php
// Работает с версиями модуля 1 и 2

$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

Смотрите также

To Top