1

我正在使用memcached 和 c++。我想使用 c++ api 从服务器中删除所有密钥。最好在没有键列表的情况下删除它们。

文档中有功能:memcached_dumpmemcached_delete。第一个返回键列表,第二个 - 删除它们。

但这是第一个函数的文档中的引用:

memcached_dump() 用于获取在 memcached(1) 服务器中找到的键列表。因为 memcached(1) 不保证转储所有密钥,所以您不能假设您已从服务器获取所有密钥。

第一个问题:获取所有密钥的任何方法,第二个问题是:如何使用这些功能。文档中没有任何示例。

谢谢。

4

3 回答 3

2

听起来像你想要的memcached_flush

于 2012-05-31T13:40:25.387 回答
1

删除 memcached 键的一种优雅方法是使用基本删除命令。但是由于我们不知道要删除哪些键,因此您应该记录在 memcached 中设置的数据。您可以将这些日志连同它们的时间戳一起转储到任何数据存储中。通过此过程,您将能够删除具有某些规则的键,从而更好地控制删除操作。

于 2012-06-05T05:01:38.630 回答
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);
}
于 2013-10-01T10:05:23.680 回答