我只是想删除缓存的数据,但我有很多键,例如:如何用“过滤器”键删除memcached数据?
user_54_books
user_54_movies
user_54_comments
user_54_foobar
我可以写$cache->delete('user_54_books');
但我与所有“user_ID_objects”做到这一点,我可以说内存缓存,像delete->('user_54_*');
?怎么样?谢谢:)
我只是想删除缓存的数据,但我有很多键,例如:如何用“过滤器”键删除memcached数据?
user_54_books
user_54_movies
user_54_comments
user_54_foobar
我可以写$cache->delete('user_54_books');
但我与所有“user_ID_objects”做到这一点,我可以说内存缓存,像delete->('user_54_*');
?怎么样?谢谢:)
不,但请参阅“Deleting By Namespace” in the FAQ解决方法。
基本上,您使用“版本密钥”。要删除所有旧数据,只需增加版本密钥。因此旧数据将不再被读取,并且在需要空间时将旧的并且被覆盖。
试试这个策略:
$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)); } }