Redis es un poderoso almacén de estructura de datos en memoria que funciona almacenando los pares de valor clave. Es una solución flexible que se utilizará como una base de datos, caché, corredor de mensajes y más. Es un software gratuito y de código abierto con increíble popularidad.
En esta guía, buscaremos eliminar una clave de la base de datos de Redis.
Requisitos previos
Para realizar los pasos demostrados en esta guía, necesitará los siguientes componentes:
Llave redis
Redis funciona usando los pares de valor clave. Básicamente, una clave es una referencia a un punto de datos que Redis almacena. Al trabajar con los datos, debe proporcionar la clave.
Para administrar las teclas, Redis viene con numerosos comandos. Por ejemplo, el comando SET se usa para declarar un par de valores clave en la base de datos de Redis. El comando get recupera el valor de la clave (en formato de cadena). El comando Keys busca la lista de claves registradas e imprime los resultados que coinciden con el patrón dado. El comando existe verifica si existe una clave en el servidor Redis.
Para eliminar una clave, Redis viene con el comando del. También está el comando getDel que imprime el valor de la clave en la pantalla antes de eliminar la clave de la base de datos Redis.
Creando un par de valores clave
Para la demostración, vamos a crear un par de clave de clave simple usando el comando set. Inicie la CLI Redis usando el siguiente comando:
1 | $ Redis-Cli |
Desde la consola, ejecute el siguiente comando:
1 | $ Set aleatorio "The Quick Brown Fox" |
Este comando registra un nuevo llave aleatoria con el valor de la cadena "el veloz zorro marrón"En la base de datos de Redis. Podemos verificar si el registro fue exitoso usando el comando Exists:
1 | $ Existe al azar |
Intente recuperar la tecla usando el comando get:
1 | $ Get Random |
Eliminar una llave
Usando el comando del Del:
Para eliminar la tecla, use el comando Del:
1 | $ Del |
Para eliminar múltiples claves, el siguiente comando Del admite múltiples argumentos:
1 | $ Del |
Si no existe una clave en la base de datos Redis, el comando get devuelve nil. Aprovechando este comportamiento, podemos probar si la eliminación clave fue exitosa usando el siguiente comando:
1 | $ Get |
Usando el comando getDel:
Una forma alternativa de eliminar las teclas es usar el comando getDel. Antes de eliminar la clave de la base de datos, GetDel imprime el valor de la clave en la pantalla.
Sin embargo, es aparentemente limitado en funcionalidad. Si la clave no existe, GetDel devuelve nil. Si el valor clave no es una cadena, devuelve un error.
Aplique el siguiente comando getDel en nuestro ejemplo anterior:
1 | $ Getdel |
Podemos usar el comando get para verificar si la eliminación de clave fue exitosa. Aquí, el valor de retorno esperado es nulo:
1 | $ Get |
Eliminar teclas por patrón
En una situación de la vida real, Redis está manejando numerosos pares de valor clave en su base de datos. Eliminar valores no deseados uno por uno es casi imposible. ¿Qué haces en tal situación??
Desafortunadamente, Redis no viene con un comando dedicado para realizar esta acción. Entonces, tenemos que ser un poco creativos e involucrar a algunas secuencias de comandos Bash.
Primero, necesitamos una forma de obtener una lista de claves que coincidan con un patrón específico. El siguiente comando logra este objetivo:
1 | $ Redis-Cli --Scan-Pattern |
Observe que no necesitamos acceder a la carcasa Redis para extraer el resultado. A continuación, necesitamos pasar esta lista a Redis para la eliminación de clave:
1 | $ Redis-Cli --Scan-Pattern |
Aquí, la lista de claves se contague a xargs. El comando XARGS toma la lista y ejecuta el comando especificado para cada entrada en la lista.
Conclusión
En esta guía, exploramos las diversas formas en que podemos eliminar las llaves de Redis. Demostramos cómo eliminar las teclas Redis una por una. También demostramos cómo eliminar las teclas Redis por patrón.
Interesado en aprender más sobre Redis? La subcategoría de Redis contiene cientos de tutoriales sobre varios componentes de Redis. Obtenga más información sobre las secuencias de comandos de Lua con Redis, Redis con Ruby, Redis Pipelining, etc.