質問: 「user *」で始まるすべてのmemcacheエントリを無効にする方法はありますか? 最近、userクラス(memcached)に変更を加えました。キャッシュ全体を無効にすることなく、キーがuserで始まるすべてのエントリを無効にできる方法はありますか?回避策がない場合は?私はすべてを削除したくない。
回答: memcached faq 、 ネームスペースによる削除 : memcachedは、名前空間によるワイルドカードの削除や削除をサポートしていませんが(名前空間がないため)、これをシミュレートするために使用できるいくつかのトリックがあります。ただし、memcachedサーバーへの追加の旅行が必要です。 fooという名前空間を使用するためのphpの例: $ns_key = $memcache->get("foo_namespace_key"); // if not set, initialize it if($ns_key===false) $memcache->set("foo_namespace_key", rand(1, 10000)); // 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"); キャッシュの一部のみをブランケットクリアすることを計画している場合は、有効期限をより短い期間に設定することを検討できます。