Redis
 sql >> Base de données >  >> NoSQL >> Redis

Laravel - Efface toutes les clés de cache / redis contenant une chaîne spécifique

Pourquoi pas :

public function forget($key_name)
{
    $redis = Cache::getRedis();
    $keys = $redis->keys("*$key_name*");
    $count = 0;
    foreach ($keys as $key) {
        $redis->del($key);
        $count++;
    }      
    return $count;  
}

Et pour l'environnement de production, le curseur SCAN [MATCH pattern] [COUNT count] doit être utilisé à la place des "clés"

http://redis.io/commands/scan

Parce que vous ne voulez pas manquer de mémoire au cas où vous auriez des dizaines de milliers de clés dans redis, et vous ne voulez pas bloquer toute votre instance redis en utilisant des "clés".