通讀緩存回調在一個(gè)元素沒(méi)有從服務(wù)端檢索到的時(shí)候被調用。這個(gè)回調函數會(huì )接收到Memcached對象,請求的key以及 一個(gè)引用方式傳遞的值變量等三個(gè)參數。此回調函數負責通過(guò)返回true或false來(lái)決定在key沒(méi)有值時(shí)設置一個(gè)默認值。 如果回調返回true,Memcached會(huì )存儲"傳出參數"(引用傳遞的值變量)存儲的值到memcached服務(wù)端并將其返回到原來(lái) 的調用函數中。僅僅Memcached::get()和Memcached::getByKey() 支持這類(lèi)回調,因為Memcache協(xié)議不支持在請求多個(gè)key時(shí)提供未檢索到key的信息。
示例 #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($key, 5);
/* 從數據庫讀取個(gè)人信息 */
/* ... */
$value = $profile_info;
return true;
}
?>