2011-09-16 2 views
1

Je truing utiliser memcache dans mon code PHP:memcache php n'expire pas

$memcache = new Memcache; 
$memcache->connect('10.0.0.21', 11244) or die ("Could not connect"); 
$store = 10; # in seconds 
$cache_key = "Counter"; 

$counter = $memcache->get($cache_key); 
if (empty($counter)) 
{ 
    $counter = $this->getTotal(); 
    $result = $memcache->replace($cache_key, $counter); 
    if($result == false) 
    { 
     $memcache->set($cache_key, $counter, 0, $store); 
    } 
} 

echo $counter; 

Ce qui se passe est que la valeur ne met pas à jour. Il est resté le même pendant des jours similaires - beaucoup plus long que le temps d'expiration de 10 secondes que j'ai défini dans le code. Qu'est-ce que je fais de mal? Ma compréhension que la clé sera supprimée après 10 secondes, mais il semble que non.

Répondre

2

Vous ne définissez l'heure d'expiration que si la clé n'est pas déjà présente. Vous devez le mettre dans l'appel à replace aussi:

$result = $memcache->replace($cache_key, $counter, 0, $store); 

devrait résoudre votre problème.

Questions connexes