Commandos fundamentales de Redis

Redis es una base de datos en memoria de tipo clave-valor, escrita en C y con soporte para múltiples lenguajes a través de APIs. Ofrece capacidades de perisstencia de datos y permite que el valor asociado a una clave sea de distintos tipos: cadenas, hashes, listas, conjuntos y conjuntos ordenados (sorted sets).

Entre sus casos de uso habituales se encuentran: la obtención de los N elementos más recientes, la creación de clasificaciones y rankings, el manejo preciso de tiempos de expiración, la implementación de contadores, sistemas en tiempo real, pub/sub para mensajería, colas de mensajes y almacenamiento en caché.

Conexión y selección de base de datos

Para conectarse mediante la interfaz de línea de comandos:

redis-cli -h dirección_ip -p puerto

<p>Por ejemplo, para acceder a la instancia local:</p>
<code>redis-cli -h 127.0.0.1 -p 6379</code>
<h2>Operaciones con claves</h2>
  • CLAVES * lista todas las claves.
  • SELECCIONAR 0 cambia a la base de datos número 0.
  • MOVER mipalabra 1 traslada la clave a la base de datos 1 (solo si no existe en destino).
  • VACIAR_BASE elimina todos los datos de la base actual.
  • CLAVE_ALEATORIA devuelve una clave al azar.
  • TIPO clave indica el tipo de dato almacenado.

Cadenas (Strings)

Almacenamiento de valores simples:

ESTABLECER usuario "ana"
OBTENER usuario
RANGO_OBTENER usuario 0 -1
OBTENER_ESTABLECER usuario "marria"
ESTABLECER_MULTIPLE clave1 "valor1" clave2 "valor2"
OBTENER_MULTIPLE clave1 clave2
ESTABLECER_SI_NO_EXISTE clave "valor"
ESTABLECER_CON_EXPIRACION clave 60 "valor_temporal"
REEMPLAZAR_SUBCADENA clave 3 "nuevo"
INCREMENTAR contador
INCREMENTAR_POR contador 10
DECREMENTAR contador
DECREMENTAR_POR contador 10
AGREGAR texto " sufijo"
LONGITUD texto

Hashes

Colecciones de pares campo-valor:

HASHEABLECER persona nombre "carlos"
HASHOBTENER persona nombre
HASHEABLECER_MULTIPLE persona nombre "carlos" edad 28 nota "prueba"
HASHOBTENER_TODO persona
HASHEXISTE persona nombre
HASHEABLECER_SI_NO_EXISTE persona puntuacion 100
HASHINCREMENTAR persona id 1
HAHSELIMINAR persona nombre
HASHCLAVES persona
HASHVALORES persona
HASHLONGITUD persona

Listas

Secuencias ordenadas de elementos:

INSERTAR_IZQUIERDA tareas "a" "b" "c"
INSERTAR_DERECHA tareas "x" "y" "z"
RANGO tareas 0 -1
POP_IZQUIERDA tareas
POP_DERECHA tareas
LONGITUD tareas
ELIMINAR_ELEMENTO tareas 2 "a"
INDICE tareas 2
ESTABLECER_INDICE tareas 2 "nuevo"
RECORTAR tareas 0 4
INSERTAR_ANTES tareas "a" "elemento"
INSERTAR_DESPUES tareas "a" "elemento"
POP_DERECHA_INSERTAR_IZQUIERDA lista1 lista2

Conjuntos (Sets)

Colecciones no ordenadas de elementos únicos:

AGREGAR_CONJUNTO tecnologías "redis"
MIEMBROS_CONJUNTO tecnologías
ELIMINAR_CONJUNTO tecnologías "mysql"
ES_MIEMBRO_CONJUNTO tecnologías "redis"
CARDINALIDAD_CONJUNTO tecnologías
DIFERENCIA_CONJUNTO set1 set2
INTERSECCIÓN_CONJUNTO set1 set2
UNIÓN_CONJUNTO set1 set2
MIEMBRO_ALEATORIO_CONJUNTO tecnologías
POP_ALEATORIO_CONJUNTO tecnologías

Conjuntos ordenados (Sorted Sets)

Colecciones con puntuación para ordenamiento:

AGREGAR_ORDENADO puntuaciones 1 "uno"
AGREGAR_ORDENADO puntuaciones 2 "dos"
INCREMENTAR_PUNTUACION puntuaciones 1 "uno"
OBTENER_PUNTUACION puntuaciones "dos"
RANGO_ORDENADO puntuaciones 0 -1 CON_PUNTUACIONES
RANGO_POR_PUNTUACION puntuaciones 10 25 CON_PUNTUACIONES
RANGO_POR_PUNTUACION puntuaciones 10 25 CON_PUNTUACIONES LIMITE 1 2
RANGO_INVERSO_POR_PUNTUACION puntuaciones 25 10 CON_PUNTUACIONES
CARDINALIDAD_ORDENADA puntuaciones
CONTEO_POR_PUNTUACION puntuaciones 10 25
ELIMINAR_ORDENADO puntuaciones "uno" "dos"
ELIMINAR_POR_RANGO puntuaciones 0 1
ELIMINAR_POR_PUNTUACION puntuaciones 0 1
RANGO_ELEMENTO puntuaciones "uno"
RANGO_INVERSO_ELEMENTO puntuaciones "dos"

Operaciones de servidor y persistencia

Archivos de persistencia: dump.rdb (snapshots) y appendonly.aof (log de operaciones).

Configuración de RDB:

guardar 900 1
guardar 300 10
guardar 60 10000

Activar y configurar AOF:

appendonly sí
appendfsync cada_segundo

Comandos de gestión:

  • FONDO_GUARDAR guarda los datos de forma asíncrona (genera dump.rdb).
  • ULTIMO_GUARDADO marca temporal del último guardado exitoso.
  • APAGAR guarda y detiene el servidor.
  • FONDO_REESCRIBIR_AOF compacta el archivo de log AOF.
  • CLIENTE_MATAR cierra una conexión de cliente.
  • CLIENTE_LISTA muestra clientes conectados.
  • CLIENTE_ASIGNAR_NOMBRE asigna un nombre al cliente actual.
  • CONFIG_OBTENER puerto obtiene un parámetro de configuración.

Publicación y suscripción

SUSCRIBIR canal_noticias
PUBLICAR canal_noticias "Mensaje de prueba"
CANALES_PUBSUB
NUM_SUSCRIPTORES canal_noticias
CANCELAR_SUSCRIPCION canal_noticias
SUSCRIBIR_PATRON noticia.*

Transacciones

Proporcionan atomicidad e aislamiento. Ejemplo de bloque transaccional:

MULTIPLE
AGREGAR_CONJUNTO usuarios "ana" "luis"
INSERTAR_IZQUIERDA registros "entrada1"
EJECUTAR

Etiquetas: Redis NoSQL Base de Datos en Memoria comandos Redis persistencia

Publicado el 6-21 17:25