2012-05-31 101 views
1

我使用的是memcached and c++。我想使用C++ api从服务器中删除所有密钥。如果没有密钥列表,最好删除它们。从缓存中删除密钥

文档中有函数:memcached_dumpmemcached_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); 
}