CakeFest 2024: The Official CakePHP Conference

Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replaceRemplace une valeur d'un élément existant

Description

Memcache::replace(
    string $key,
    mixed $var,
    int $flag = ?,
    int $expire = ?
): bool

Memcache::replace() est utilisé pour remplacer la valeur d'un élément identifié par la clé key. Dans le cas où l'élément identifié par la clé key n'existe pas, la fonction Memcache::replace() retournera false. Pour le reste, la fonction Memcache::replace() fonctionne de la même façon que la fonction Memcache::set(). Vous pouvez également utiliser la fonction memcache_replace().

Liste de paramètres

key

La clé qui sera associée avec l'élément.

var

La variable à enregistrer. Les chaînes de caractères et les entiers sont enregistrer comme tels, les autres types sont enregistrés de manière sérialisée.

flag

Utilisez MEMCACHE_COMPRESSED pour enregistrer l'élément compressé (utilise zlib).

expire

Temps d'expiration pour l'élément. S'il égal 0, l'élément n'expirera jamais. Vous pouvez aussi utiliser un timestamp Unix ou un nombre de seconde en commençant par la date d'aujourd'hui, mais dans le dernier cas, le nombre de secondes ne doit pas excéder 2592000 (30 jours).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcache::replace()

<?php

$memcache_obj
= memcache_connect('memcache_host', 11211);

/* API procédurale */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* API orientée objet */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

Voir aussi

add a note

User Contributed Notes 1 note

up
10
adam.pippin [AT] ohmedia.ca
13 years ago
This page mentions that replace should be used rather than set, but gives no reason. Best information I could find was a comment by 'argyleblanket' on the set page. (http://www.php.net/manual/en/memcache.set.php#84032)

"Using set more than once for the same key seems to have unexpected results - it does not behave as a "replace," but instead seems to "set" more than one value for the same key. "get" may return any of the values.

This was tested on a multiple-server setup - behaviour may be different if you only have one server. "
To Top