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