"filtre" ile memcached verileri silmek nasıl

2 Cevap php

Ben sadece önbelleğe alınmış verileri silmek istiyorum, ama örneğin, birçok anahtarları var:

user_54_books
user_54_movies
user_54_comments
user_54_foobar

I $cache->delete('user_54_books'); yazabilirsiniz ama tüm "user_ID_objects" ile bunu yapmak zorunda, ben, gibi bir şey MEMCACHE söyleyebiliriz delete->('user_54_*');? nasıl? teşekkürler :)

2 Cevap

Hayır, ama görmek “Deleting By Namespace” in the FAQ geçici bir çözüm için.

Temelde, bir "sürüm anahtarını" kullanın. Tüm eski verileri silmek için, sadece sürüm anahtarını artırmak. Eski veri böylece artık okumak olmayın ve uzay gerektiğinde eski ve üzerine yazılır.

Bu stratejiyi deneyin:

$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));
  }
}