2012-05-31 3 views
1

저는 memcached and c++을 사용하고 있습니다. C++ API를 사용하여 서버에서 모든 키를 제거하고 싶습니다. 키 목록없이 제거하는 것이 좋습니다.캐시에서 키를 제거하십시오.

설명서에 기능이 있습니다 : memcached_dumpmemcached_delete. 첫 번째 키는 키 목록을 반환하고 두 번째 키는 키 목록을 반환합니다.

memcached_dump() (1) 서버 memcached를 발견 키의 목록을 가져 오는 데 사용됩니다 :

하지만, 여기에 먼저 함수의 문서에서 인용이다. 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); 
} 
관련 문제