2010-11-22 5 views
2

Je souhaite ajouter des données à un élément dans Memcached. Mais il semble que si l'élément n'existe pas, cette action ne créera pas un élément et les données ne seront simplement pas stockées. * php parlanteVérifiez si l'élément existe dans Memcached, sans le tirer?

+0

double possible de [vérifier si une clé existe dans Memcache] (http://stackoverflow.com/questions/3091107/ check-if-a-key-exists-in-memcache) –

Répondre

2

Utilisez append.

Si l'élément n'existe pas, vous obtiendrez une erreur vous disant qu'il n'existait pas.

4

Si Memcache::get() renvoie la valeur false, la clé n'existe pas (ou une erreur s'est produite). Contrairement à APC, Memcache n'a aucune autre fonctionnalité pour vérifier l'existence (ou la non-existence) d'une clé.

+2

Que se passe-t-il si la clé demandée contient la valeur 'false'? –

+3

Après avoir fait '$ m-> get (KEY)' vous devriez utiliser '$ m-> getResultCode() == Memcached :: RES_SUCCESS' pour vérifier si' KEY' existe. Voici une liste de codes de résultats possibles: http://php.net/manual/en/memcached.set.php#114651 – axelbrz

5

Pour vérifier correctement si un élément existe dans Memcached/PHP que vous devez faire:

$item = $m->get($key); 
if ($m->getResultCode() == Memcached::RES_SUCCESS) { 
    // item exists ($item value) 
} else { 
    // item does not exist ($item is probably false) 
} 
Questions connexes