Memcached::getAllKeys

(PECL memcached >= 2.0.0)

Memcached::getAllKeysRécupère toutes les clés stockés sur tous les serveurs

Description

public array Memcached::getAllKeys ( void )

Memcached::getAllKeys() interroge chaque serveur memcache et récupère un tableau contenant toutes les clés stockés sur chacun d'eux. Ce n'est pas une opération atomitque, aussi, ce n'est pas une image réellement consistente des clés à l'instant donné. Sachant que memcache ne garantie pas de retourner tous les clés, vous ne pouvez pas être certain que toutes les clés ont bien été retournées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les clés stockées sur tous les serveurs en cas de succès ou FALSE si une erreur survient.

add a note add a note

User Contributed Notes 4 notes

up
1
flaviu dot chelaru at gmail dot com
10 months ago
// initiate the memcached instance
$cache = new \Memcached();
$cache->addServer('localhost', '11211');

// get all stored memcached items

$keys = $cache->getAllKeys();
$cache->getDelayed($keys);

$store = $cache->fetchAll();

// delete by regex keys

$keys = $cache->getAllKeys();
$regex = 'product_.*';
foreach($keys as $item) {
    if(preg_match('/'.$regex.'/', $item)) {
        $cache->delete($item);
    }
}
up
3
xiangku7890 at gmail dot com
1 year ago
First I use the lastest memcached version 1.4.25, but unfortunately I found memcached::getAllkeys do not work with it, though i follow the others suggestion to disable Memcached::OPT_BINARY_PROTOCOL. So i try to use history versions, when i use memcached version 1.4.17, it works.
up
-3
fykknd at 163 dot com
1 year ago
I got this answer..
My libmemcached version is 1.0.18. php-memcached version is 2.2.0
In Libmemcached at memcache.h line 84:
#define MAX_NUMBER_OF_SLAB_CLASSES (63 + 1)
Modify it to 201, compile again. It's ok.
主要还是版本不兼容造成的。libmemchaed里的一个bug,
memcached_return_t这个方法里的for循环,最大数是200,和上面的常量64定义不一致造成的。
up
-8
Cuchac
2 years ago
This command returns always FALSE when binary protocol in use (Memcached::OPT_BINARY_PROTOCOL = true). Without binary protocol it works.
To Top