Eliminar datos en Redis
Clase 44 de 48 • Curso de MongoDB y Redis 2017
En el anterior material se insertó y leyó un registro con SET
y GET
respectivamente. Para eliminar ese registro
de Redis hay que utilizar el comando DEL
, este comando recibe uno o más parámetros de tipo llave, puedo borrar N cantidad
de claves al tiempo con este comando.
Ejemplo:
127.0.0.1:6379> DEL clave (integer) 1
Si el número seguido de (integer)
es distinto de cero significa que se eliminó la cantidad de llaves que indique el número
en este ejemplo se eliminó una llave.
Limitación
DEL
no permite eliminar en lote, he vivido la experiencia y encontré la solución para eliminar en lote
desde la consola de Redis con el siguiente código utilizando EVAL
:
EVAL "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 pattern*
Lo importante de ese snippet de código es la última parte pattern*
ahí indicamos que todas las llaves que comiencen con
pattern
serán eliminadas.
Ese código es muy útil para eliminar por ejemplo cache de todos los usuarios si tienes un patrón como cache:user:<user_id>
,
si deseas eliminar todos los registros debes ejecutar el código de arriba con cache:user:*
al final.