Gestión Básica de Datos en Redis

RedisRedisBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, explorarás técnicas básicas de gestión de datos en Redis. Comenzarás aprendiendo cómo incrementar y decrementar valores numéricos utilizando los comandos atómicos INCR y DECR, adecuados para contadores y limitadores de velocidad (rate limiters). Te conectarás al servidor Redis usando redis-cli, establecerás valores iniciales y luego los incrementarás y decrementarás, verificando los resultados con el comando GET.

Además, aprenderás cómo recuperar todas las claves (keys) almacenadas en Redis utilizando el comando KEYS.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/fetch_string("Get String Value") redis/RedisGroup -.-> redis/remove_key("Delete Single Key") redis/RedisGroup -.-> redis/increment_int("Increase Integer Value") redis/RedisGroup -.-> redis/decrement_int("Decrease Integer Value") subgraph Lab Skills redis/access_cli -.-> lab-552076{{"Gestión Básica de Datos en Redis"}} redis/fetch_string -.-> lab-552076{{"Gestión Básica de Datos en Redis"}} redis/remove_key -.-> lab-552076{{"Gestión Básica de Datos en Redis"}} redis/increment_int -.-> lab-552076{{"Gestión Básica de Datos en Redis"}} redis/decrement_int -.-> lab-552076{{"Gestión Básica de Datos en Redis"}} end

Incrementar y Decrementar Valores con INCR/DECR

En este paso, aprenderás cómo incrementar y decrementar valores numéricos almacenados en Redis utilizando los comandos INCR y DECR. Estos comandos son atómicos, lo que significa que se garantiza que se ejecutarán sin interferencia de otros clientes, lo que los hace adecuados para tareas como contadores y limitadores de velocidad (rate limiters).

Primero, conectémonos al servidor Redis usando el comando redis-cli en la terminal:

redis-cli

Ahora, establezcamos una clave (key) llamada mycounter con un valor inicial de 10. Esto crea un par clave-valor (key-value pair) en la base de datos Redis. La clave es mycounter y el valor es 10.

SET mycounter 10

Deberías ver la siguiente salida, confirmando que la clave se ha establecido correctamente:

OK

El comando INCR incrementa el valor de una clave en 1. Incrementemos mycounter:

INCR mycounter

La salida será el valor incrementado:

(integer) 11

Para verificar el valor, puedes usar el comando GET:

GET mycounter

La salida debería ser:

"11"

El comando DECR decrementa el valor de una clave en 1. Decrementemos mycounter:

DECR mycounter

La salida será el valor decrementado:

(integer) 10

Nuevamente, verifica el valor con GET:

GET mycounter

La salida debería ser:

"10"

Si una clave no existe, INCR y DECR la tratan como si contuviera el valor 0. Intentemos incrementar una clave inexistente llamada newcounter:

INCR newcounter

La salida será:

(integer) 1

Ahora, verifica el valor de newcounter:

GET newcounter

La salida debería ser:

"1"

De manera similar, decrementar una clave inexistente la tratará como 0 y la decrementará a -1.

DECR anothercounter

La salida será:

(integer) -1
GET anothercounter

La salida debería ser:

"-1"

Finalmente, sal de redis-cli:

exit

Es importante salir de redis-cli después de completar los comandos para que el historial de comandos se registre correctamente.

Recuperar Todas las Claves con KEYS

En este paso, aprenderás cómo recuperar todas las claves (keys) almacenadas en Redis utilizando el comando KEYS. Si bien KEYS es útil para el desarrollo y la depuración, generalmente no se recomienda para entornos de producción con grandes conjuntos de datos porque puede bloquear el servidor mientras itera a través de todas las claves.

Primero, conéctate al servidor Redis usando redis-cli:

redis-cli

En el paso anterior, creaste varias claves: mycounter, newcounter y anothercounter. Agreguemos algunas claves más para que el ejemplo sea más interesante.

SET user:1000:name "John"
SET user:1000:age 30
SET user:1001:name "Jane"

Ahora, usa el comando KEYS con el patrón * para recuperar todas las claves en la base de datos:

KEYS *

La salida será una lista de todas las claves:

1) "anothercounter"
2) "user:1000:age"
3) "user:1001:name"
4) "mycounter"
5) "newcounter"
6) "user:1000:name"

El orden de las claves puede variar.

También puedes usar patrones para recuperar claves que coincidan con un patrón específico. Por ejemplo, para recuperar todas las claves que comienzan con user:, usa el siguiente comando:

KEYS user:*

La salida será:

1) "user:1000:age"
2) "user:1001:name"
3) "user:1000:name"

Otro ejemplo, para recuperar todas las claves que contengan counter, usa el siguiente comando:

KEYS *counter*

La salida será:

1) "anothercounter"
2) "mycounter"
3) "newcounter"

Recuerda que usar KEYS * en una base de datos grande puede afectar el rendimiento. Para entornos de producción, considera usar SCAN en su lugar, que itera a través del espacio de claves (keyspace) de manera no bloqueante.

Finalmente, sal de redis-cli:

exit

Verificar el Tipo de Datos con TYPE

En este paso, aprenderás cómo verificar el tipo de datos (data type) de una clave (key) almacenada en Redis utilizando el comando TYPE. Redis admite varios tipos de datos, incluyendo cadenas (strings), listas (lists), conjuntos (sets), conjuntos ordenados (sorted sets) y hashes. Comprender el tipo de datos de una clave es crucial para realizar operaciones apropiadas sobre ella.

Primero, conéctate al servidor Redis usando redis-cli:

redis-cli

En los pasos anteriores, creaste varias claves con diferentes valores. Verifiquemos sus tipos de datos.

Primero, verifiquemos el tipo de datos de la clave mycounter:

TYPE mycounter

La salida será:

string

Esto indica que mycounter se almacena como una cadena, aunque contenga un valor numérico. Redis convierte automáticamente los valores numéricos en cadenas cuando se usa SET.

A continuación, verifiquemos el tipo de datos de la clave user:1000:name:

TYPE user:1000:name

La salida será:

string

Esto también indica que user:1000:name se almacena como una cadena.

Ahora, verifiquemos el tipo de datos de una clave que no existe, como nonexistentkey:

TYPE nonexistentkey

La salida será:

none

Esto indica que la clave no existe en la base de datos.

Para ilustrar aún más los tipos de datos, creemos una lista:

LPUSH mylist "item1"
LPUSH mylist "item2"

Ahora, verifica el tipo de datos de mylist:

TYPE mylist

La salida será:

list

Esto confirma que mylist se almacena como una lista.

De manera similar, puedes crear otros tipos de datos como conjuntos, conjuntos ordenados y hashes y usar el comando TYPE para verificar sus tipos. Por ejemplo:

SADD myset "member1"
SADD myset "member2"
TYPE myset

La salida será:

set
ZADD mysortedset 1 "element1"
ZADD mysortedset 2 "element2"
TYPE mysortedset

La salida será:

zset
HSET myhash field1 "value1"
HSET myhash field2 "value2"
TYPE myhash

La salida será:

hash

Finalmente, sal de redis-cli:

exit

Borrar Datos con FLUSHDB

En este paso, aprenderás cómo borrar todos los datos de la base de datos Redis actualmente seleccionada utilizando el comando FLUSHDB. Este comando es útil para restablecer (resetting) la base de datos durante el desarrollo o las pruebas. Usa este comando con precaución en entornos de producción, ya que eliminará permanentemente todos los datos de la base de datos.

Primero, conéctate al servidor Redis usando redis-cli:

redis-cli

Antes de vaciar (flushing) la base de datos, verifiquemos que haya claves (keys) presentes. Usa el comando KEYS *:

KEYS *

Deberías ver una lista de claves que creaste en los pasos anteriores, como mycounter, newcounter, user:1000:name y mylist.

Ahora, ejecuta el comando FLUSHDB:

FLUSHDB

La salida será:

OK

Esto indica que la base de datos se ha vaciado correctamente.

Para verificar que la base de datos ahora está vacía, usa el comando KEYS * nuevamente:

KEYS *

La salida será una lista vacía:

(empty array)

Esto confirma que todas las claves se han eliminado de la base de datos.

Es importante comprender que FLUSHDB solo borra la base de datos actualmente seleccionada. Redis admite múltiples bases de datos (databases) (numeradas del 0 al 15 por defecto). Si deseas borrar todas las bases de datos, puedes usar el comando FLUSHALL. Sin embargo, no usaremos FLUSHALL en este laboratorio para evitar la pérdida de datos no deseada.

Finalmente, sal de redis-cli:

exit

Resumen

En este laboratorio, aprendiste técnicas fundamentales de gestión de datos en Redis. Específicamente, practicaste el incremento y decremento de valores numéricos utilizando los comandos atómicos INCR y DECR, que son útiles para implementar contadores (counters) y limitadores de velocidad (rate limiters). También aprendiste que si una clave (key) no existe, estos comandos la tratan como si contuviera el valor 0.

Además, se te presentó el comando KEYS para recuperar todas las claves almacenadas en Redis. Si bien es útil para el desarrollo y la depuración (debugging), generalmente no se recomienda para entornos de producción con grandes conjuntos de datos (datasets). Finalmente, aprendiste cómo verificar los tipos de datos y borrar la base de datos.