通讀緩存回調(diào)

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