Webmasters Stack Exchange is a question and answer site for pro webmasters. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I recently made a change to my User class (which is memcached); is there any way I can invalidate all entries whose key begins with User without invalidating the entire cache?

If not are there any workarounds? I would rather not delete everything.

share|improve this question
You'll probably get a faster response over at serverfault.com – Mark Henderson Jul 8 '10 at 23:41
up vote 1 down vote accepted

In the memcached FAQ, Deleting by Namespace:

While memcached does not support any type of wildcard deleting or deletion by namespace (since there are not namespaces), there are some tricks that can be used to simulate this. They do require extra trips to the memcached servers however.

Example, in PHP, for using a namespace called foo:

$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:

If you are planning on doing a blanket clear of only part of the cache, you might consider setting the expiry to a shorter time period.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.