1

memcached と c++を使用しています。C++ API を使用して、サーバーからすべてのキーを削除したいと考えています。キーのリストなしでそれらを削除することをお勧めします。

ドキュメントには機能があります: memcached_dumpおよびmemcached_delete。1 つ目はキーのリストを返し、2 つ目はそれらを削除します。

しかし、最初の関数のドキュメントからの引用は次のとおりです。

memcached_dump() は、memcached(1) サーバーで見つかったキーのリストを取得するために使用されます。memcached(1) はすべてのキーをダンプすることを保証しないため、サーバーからすべてのキーをフェッチしたとは想定できません。

最初の質問: すべてのキーを取得する方法と 2 番目の質問: これらの関数を使用する方法。ドキュメントに例はありません。

ありがとう。

4

3 に答える 3

2

あなたがしたいようですmemcached_flushね?

于 2012-05-31T13:40:25.387 に答える
1

An elegant way to remove the memcached keys would be the use of basic delete command. But as we don't know which keys to delete, you ought to keep a log of the data being set in the memcached. You could dump these log along with their time-stamp in any data-store. By this procedure you would be able to delete keys with certain rules thereby providing to better control in the delete operation.

于 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 に答える