memcacheとワイルドカード 質問する

memcacheとワイルドカード 質問する

キー値にワイルドカードを使用して memcache をクリアする方法があるかどうか知りたいだけです。

たとえば、キー「1234~foo」と別のキー「1234~foo~bar」を持つキャッシュがあるとします。

clear("1234*") のようなものを使用してキャッシュをクリアし、上記の両方をクリアする方法はありますか?

それが意味を成すといいのですが。

ありがとう。

ベストアンサー1

いいえ、これを直接簡単に行う方法はありません。よくある質問この問題に対処し、ある種の回避策を提供します。

名前空間による削除

memcached は、ワイルドカードによる削除や名前空間による削除をサポートしていませんが (名前空間がないため)、これをシミュレートするために使用できるトリックがいくつかあります。ただし、それらのトリックでは、memcached サーバーへの追加のトリップが必要になります。

PHP で foo という名前空間を使用する例:

$ns_key = $memcache->get("foo_namespace_key");
// if not set, initialize it
if($ns_key===false) {
    $ns_key=rand(1, 10000);
    $memcache->set("foo_namespace_key", $ns_key);
}
// cleverly use the ns_key
$my_key = "foo_".$ns_key."_12345";
$my_val = $memcache->get($my_key);

//To clear the namespace do:
$memcache->increment("foo_namespace_key");

おすすめ記事