从缓存中删除密钥

时间:2012-05-31 09:22:47

标签: c++ memcached

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

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

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

  

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

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

感谢。

3 个答案:

答案 0 :(得分:2)

听起来像你想要memcached_flush

答案 1 :(得分:1)

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

答案 2 :(得分: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);
}