ScotlandPHP

Функции обратного вызова сквозного чтения кеша

Данные функции вызываются в случае, когда невозможно получить запрошенное значение. В функцию обратного вызова передается объект Memcached и запрошенный ключ, а так же передается по ссылке переменная для возврата значения. Функция должна вернуть FALSE или TRUE. Если TRUE, то Memcached сохранит полученное значение и вернет его оригинальной функции. Данные функции обратного вызова используются только с Memcached::get() и Memcached::getByKey(), так как протокол не предоставляет информации о том, какие ключи не найдены, при пакетных запросах.

Пример #1 Пример использования

<?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($key5);
    
/* ищем необходимые данные в БД */
    /* ... */
    
$value $profile_info;
    return 
true;
}
?>
add a note add a note

User Contributed Notes 2 notes

up
2
chadkouse
5 years ago
Or just set the value within the callback with your own custom expiration time and return false.  I think it's cleaner.
up
1
oorza2k5 at gmail dot com
8 years ago
This isn't specified anywhere, so I had a gander at the source...

The expiry on read-through cache set values is set to 0, or forever.  This means if you want your key to implicitly expire, don't use the callback methods, instead check for boolean false as a return and manually set the value, at least for now.
To Top