从缓存中删除密钥

Remove keys from cache

本文关键字:密钥 删除 缓存      更新时间:2023-10-16

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

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

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

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

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

谢谢。

听起来你想要memcached_flush

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

当您需要能够删除一堆键时,记录键是管理缓存数据的有用方法。此外,使用前缀可以提供一种将缓存数据作为一个整体进行管理的方法。

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);
}