Eliminar datos en Redis

Clase 44 de 48Curso 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.