Actually, when you pass a callback, method doesn't return immediately, but waits for results and calls callback function.
(PECL memcached >= 0.1.0)
Memcached::getDelayed — Запрашивает несколько записей
Memcached::getDelayed() запрашивает у memcache несколько
записей, ключи которых переданы в массиве keys
. Данный метод не дожидается
ответа и возвращает значение сразу. Когда вы будете готовы получить записи, сделайте вызов метода
Memcached::fetch() или Memcached::fetchAll(). Если параметр
with_cas
установлен в true, то CAS токены также будут запрошены.
Вместо получения результатов в явном виде, вы можете указать callback-функцию для получения результата с помощью
параметра value_cb
.
keys
Массив с ключами для запроса записей.
with_cas
Запрашивать ли CAS токены записей вместе со значениями.
value_cb
Callback-Функция, возвращающая результат, или null
.
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Используйте при необходимости Memcached::getResultCode().
Пример #1 Пример использования Memcached::getDelayed()
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>
Результат выполнения приведённого примера:
array(2) { [0]=> array(3) { ["key"]=> string(3) "int" ["value"]=> int(99) ["cas"]=> float(2363) } [1]=> array(3) { ["key"]=> string(5) "array" ["value"]=> array(2) { [0]=> int(11) [1]=> int(12) } ["cas"]=> float(2365) } }
Actually, when you pass a callback, method doesn't return immediately, but waits for results and calls callback function.