我正在使用memcached and c++。我想使用c ++ api从服务器中删除所有密钥。最好在没有键列表的情况下删除它们。
文档中有功能:memcached_dump和memcached_delete。第一个返回键列表,第二个 - 删除它们。
但这是第一个函数文档的引用:
memcached_dump()用于获取memcached中找到的键列表(1) 服务器。因为memcached(1)不保证转储所有密钥 不能假设您已从服务器获取所有密钥。
第一个问题:任何获取所有键的方法,第二个问题是:如何使用这些功能。文档中没有任何示例。
感谢。
答案 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);
}