Callback-функции кеша со сквозным чтением вызываются, когда элемент невозможно получить с сервера.
В callback-функцию передаётся объект Memcached, запрошенный ключ
и переменная значения по ссылке. Callback-функция отвечает за установку значения и возврат значения
true
или false
. Если callback-функция вернула true
, Memcached сохранит заполненное значение
на сервере и вернёт его оригинальной функции. Только методы Memcached::get()
и Memcached::getByKey() поддерживают эти callback-функции,
поскольку протокол memcache не даёт информации о том, какие ключи не были найдены в пакетном запросе.
Пример #1 Пример callback-функции сквозного чтения
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$profile_info = $m->get('user:'.$user_id, 'user_info_cb');
function user_info_cb($memc, $key, &$value)
{
$user_id = substr($key, 5);
/* Ищем требуемые данные в БД */
/* ... */
$value = $profile_info;
return true;
}
?>