Mobile app version of vmapp.org
Login or Join
Karen161

: Is there any way to invalidate all memcache entries that begin with "User*"? I recently made a change to my User class (which is memcached); is there any way I can invalidate all entries whose

@Karen161

Posted in: #Cache

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.

10.01% popularity Vote Up Vote Down


Login to follow query

More posts by @Karen161

1 Comments

Sorted by latest first Latest Oldest Best

 

@Dunderdale272

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:
$memcache->increment("foo_namespace_key");


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.

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme