Memcached::getAllKeys

(PECL memcached >= 2.0.0)

Memcached::getAllKeysПолучает все ключи, хранящиеся на серверах

Описание

public array Memcached::getAllKeys ( void )

Memcached::getAllKeys() отправляет запрос на каждый сервер и получает массив всех ключей, хранящихся на нем в данный момент. Это не атомарная операция, так что это не по-настоящему непротиворечивый снимок ключей в данный момент времени. Memcache не может гарантировать возврата всех ключей, вы также не можете полагаться на то, что все ключи были возвращены.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает список ключей, хранящихся на всех серверах в случае успеха или FALSE в случае возникновения ошибки.

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