Bases de datos nosql
3.1. Redis: La base clave-valor más popular
🔹 ¿Qué es Redis?
Redis (Remote Dictionary Server) es una base de datos clave-valor en memoria. Se usa principalmente para caché, sesiones de usuario y procesamiento en tiempo real.
🔹 Instalación y configuración
Para instalar Redis en Linux o Mac:
1sudo apt install redis-server # Ubuntu 2brew install redis # macOS
Para verificar que Redis está corriendo:
1redis-cli ping # Devuelve "PONG" si está funcionando
🔹 Comandos básicos de Redis
1SET usuario:1 "Ana" # Guarda "Ana" en la clave usuario:1 2GET usuario:1 # Devuelve "Ana" 3DEL usuario:1 # Elimina la clave usuario:1
Ejemplo práctico: Uso de Redis para almacenar sesiones de usuario
1SET sesion:1234 "{'usuario': 'Carlos', 'expira': '2025-03-07'}" 2GET sesion:1234
🔹 Uso de estructuras de datos avanzadas en Redis
Redis permite guardar más que solo cadenas de texto:
- Listas (
LPUSH,RPUSH,LPOP,RPOP) - Conjuntos (
SADD,SREM,SMEMBERS) - Hashes (
HSET,HGET,HGETALL)
Ejemplo: Contador de visitas
1INCR visitas:pagina # Incrementa en 1 2GET visitas:pagina # Devuelve el número actual de visitas
🔹 Persistencia en Redis
Redis puede guardar datos en disco para evitar perder información al reiniciar:
- RDB (Snapshot) → Guarda copias completas en momentos específicos.
- AOF (Append-Only File) → Guarda cada cambio en el tiempo real.
Para habilitar AOF:
1redis-cli config set appendonly yes
🔹 Clusterización y replicación en Redis
Redis permite distribuir datos en múltiples servidores para mayor rendimiento y seguridad. La replicación permite tener copias en servidores secundarios.
3.2. Memcached: Rápido y ligero
🔹 ¿Qué es Memcached?
Memcached es una base de datos clave-valor extremadamente rápida, utilizada para caché en aplicaciones web y reducción de carga en bases de datos.
🔹 Diferencias entre Redis y Memcached
| Característica | Redis | Memcached |
|---|---|---|
| Almacenamiento | En memoria (con opción a disco) | Solo en memoria |
| Tipos de datos | Soporta listas, hashes, conjuntos | Solo cadenas |
| Persistencia | Sí (RDB y AOF) | No |
| Clusterización | Sí | No |
🔹 Instalación y uso de Memcached
Para instalar Memcached en Linux o Mac:
1sudo apt install memcached # Ubuntu 2brew install memcached # macOS
Para iniciar el servicio:
1memcached -d -m 64 # Inicia Memcached con 64 MB de memoria
🔹 Comandos básicos de Memcached
1set usuario:1 0 0 6 # Guarda "Carlos" en la clave usuario:1 2Carlos 3 4get usuario:1 # Devuelve "Carlos" 5delete usuario:1 # Elimina la clave usuario:1
🔹 Ejemplo de uso de Memcached en una aplicación web
Memcached se usa mucho para almacenar información de caché. Ejemplo en una API:
1️⃣ Primero, consulta Memcached:
1get datos:producto:123
2️⃣ Si los datos no están, consulta la base de datos y almacénalos en Memcached:
1set datos:producto:123 0 60 100 2"{'nombre': 'Laptop', 'precio': 1200}"
El 0 es un flag, el 60 es el tiempo de expiración (segundos) y el 100 es el tamaño de los datos.
🔹 Casos de uso de Memcached
✔ Caché de bases de datos
✔ Almacenamiento de sesiones
✔ Almacenamiento de datos temporales
3.3. Amazon DynamoDB: Escalabilidad en la nube
🔹 ¿Qué es DynamoDB?
DynamoDB es un servicio de bases de datos clave-valor en la nube de AWS. Está diseñado para manejar grandes volúmenes de datos con alta disponibilidad.
🔹 Características de DynamoDB
✔ Totalmente gestionado (sin necesidad de instalar servidores).
✔ Escala automáticamente según la demanda.
✔ Compatible con estructuras clave-valor y documentos JSON.
✔ Consistencia eventual o fuerte según la configuración.
🔹 Creación de una tabla en DynamoDB
Para crear una tabla en AWS:
1️⃣ Ir a la Consola de AWS
2️⃣ Seleccionar DynamoDB > Crear tabla
3️⃣ Definir una clave primaria (Ejemplo: id)
4️⃣ Configurar opciones de almacenamiento
🔹 Operaciones básicas en DynamoDB con AWS CLI
1# Insertar un dato 2aws dynamodb put-item --table-name Usuarios --item '{"id": {"S": "1"}, "nombre": {"S": "Ana"}}' 3 4# Obtener un dato 5aws dynamodb get-item --table-name Usuarios --key '{"id": {"S": "1"}}'
🔹 Índices secundarios y escalabilidad
DynamoDB permite crear índices secundarios para consultas más rápidas y escalables.
Ejemplo: Un índice para buscar usuarios por email en lugar de por ID.
🔹 Casos de uso de DynamoDB
✔ Aplicaciones móviles y web escalables
✔ Juegos en línea con almacenamiento rápido
✔ Sistemas de IoT con grandes volúmenes de datos