2012-05-31 4 views
1

Я использую memcached and c++. Я хочу удалить все ключи с сервера с помощью C++ api. Было бы лучше удалить их без списка ключей.Удалить ключи из кеша

В документации есть функция: memcached_dump и memcached_delete. Первый возвращает список ключей, а второй - удаляет их.

Но вот цитата из документации первой функции:

memcached_dump() используется для получения списка ключей найдено в Memcached (1) серверы. Поскольку memcached (1) не гарантирует удаление всех ключей, вы не можете предположить, что вы выбрали все ключи с сервера.

Первый вопрос: любые способы получить ВСЕ ключи, а второй: как использовать эти функции вообще. В документации нет примеров.

Спасибо.

ответ

1

Элегантный способ удаления ключей memcached будет использовать базовую команду удаления. Но поскольку мы не знаем, какие ключи для удаления, вы должны хранить журнал данных, заданных в memcached. Вы можете сбросить этот журнал вместе со своей меткой времени в любом хранилище данных. С помощью этой процедуры вы сможете удалять ключи с определенными правилами, тем самым обеспечивая лучший контроль в операции удаления.

0

Ключи регистрации - полезный способ управления данными кеша, когда вам нужно удалить кучу ключей. Кроме того, использование префикса может обеспечить способ управления кэшированными данными в целом.

function save($key,$data,$group){ 
    cache_log_key($group,$key); 
    cache_save($application_prefix.$key,$data); 
} 

function deleteGroup($group){ 
    $loggedKeys = cache_get_log($group); 
    foreach($loggedKeys as $key){ 
     cache_delete($application_prefix.$key); 
    }  
    cache_delete_log($group); 
} 
Смежные вопросы