我只想删除缓存数据,但我有很多键,例如:
user_54_books
user_54_movies
user_54_comments
user_54_foobar
我可以写$cache->delete('user_54_books');
但是我必须对所有“user_ID_objects”这样做,我可以对memcache这样说delete->('user_54_*');
吗?怎么样?谢谢:))
答案 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)); } }