如何用“过滤”键删除memcached数据?

时间:2010-05-27 13:25:41

标签: php memcached

我只想删除缓存数据,但我有很多键,例如:

user_54_books
user_54_movies
user_54_comments
user_54_foobar

我可以写$cache->delete('user_54_books');但是我必须对所有“user_ID_objects”这样做,我可以对memcache这样说delete->('user_54_*');吗?怎么样?谢谢:))

2 个答案:

答案 0 :(得分:2)

不,但请参阅“Deleting By Namespace” in the FAQ了解解决方法。

基本上,您使用“版本密钥”。要删除所有旧数据,只需增加版本密钥即可。因此,旧数据将不再被读取,并且在需要空间时将旧的并被覆盖。

答案 1 :(得分:1)

尝试此策略:

$userIdList = array(1, 2, 3, 4, 5);
$userIdObjectList = array("boots", "movies", "comments", "foobar");
foreach ($userIdList as $id)
{
  foreach ($userIdObjectList as $object)
  {
    $cache->delete(sprintf("user_%s_%s", $id, $object));
  }
}