sql >> Base de Datos >  >> NoSQL >> Redis

Laravel:borra todas las claves de caché/redis que contienen una cadena específica

Por qué no:

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

Y para el entorno de producción, se debe usar el cursor SCAN [PATRÓN DE COINCIDENCIA] [CONTADOR] en lugar de "teclas"

http://redis.io/commands/scan

Porque no quiere quedarse sin memoria en caso de que tenga decenas de miles de claves en redis, y no quiere bloquear toda su instancia de redis usando "claves".