PHP 8.4.2 Released!

Retrollamadas de caché de lectura previa

Las retrollamadas de caché de lectura previa son invocadas cuando un ítem no puede ser obtenido de un servidor. A la retrollamada se le proporciona el objecto Memcached, la clave solicitada y el valor por referencia de la variable. La retrollamada se encarga de definir el valor y devolver true o false. Si la retrollamada devuelve true, Memcached guardará el valor en el servidor y lo devolverá a la función de llamada original. Solamente Memcached::get() y Memcached::getByKey() admiten estas retrollamadas, ya que el protocolo memcache no provee información sobre las claves que no fueron encontradas en la petición de varias claves.

Ejemplo #1 Ejemplo de lectura de retrollamada

<?php
$m
= new Memcached();
$m->addServer('localhost', 11211);

$info_perfil = $m->get('user:'.$id_usuario, 'rll_info_usuario');

function
rll_info_usuario($memc, $clave, &$valor)
{
$id_usuario = substr($clave, 5);
/* buscar el prefil en la BD */
/* ... */
$valor = $info_perfil;
return
true;
}
?>
add a note

User Contributed Notes 2 notes

up
2
chadkouse
12 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
15 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