Ficha 02 · Redis e Elasticsearch
Exercício 1 · Setup Redis
Instala Redis localmente (Docker) e testa com redis-cli. Faz SET/GET, INCR e EXPIRE.
Resposta:
Exercício 2 · Tipos de dados Redis
Testa cada tipo:
- Hash: guardar utilizador (user:1 com name, age, email).
- List: queue com 3 tasks (push, pop).
- Set: tags (tags:post1 com python, web, ai).
- Sorted set: leaderboard com 3 jogadores.
Resposta:
Exercício 3 · Python — Cache pattern
Cria função Python get_post(id) que primeiro tenta Redis cache (TTL 5min), e só vai à BD se miss. Simula a "BD" com um dict.
Resposta:
Exercício 4 · Rate limiting com Redis
Implementa função is_rate_limited(user_id, limit=10, window=60) que retorna True se utilizador excedeu limite no último minuto.
Resposta:
Exercício 5 · Setup Elasticsearch
Instala Elasticsearch via Docker. Faz curl ao endpoint root e indexa um documento.
Resposta:
Exercício 6 · Elasticsearch full-text search (Python)
Cria script Python com elasticsearch client: - Indexa 5 documentos (livros: title, author, year). - Pesquisa por palavra no title. - Filtro por year range.
Resposta:
Exercício 7 · Aggregations Elasticsearch
Usando o índice de livros do exercício 6, calcula: - Quantos livros por autor. - Média de anos por autor.
Resposta:
Exercício 8 · Stack integrada — MongoDB + Redis cache
Sistema:
- MongoDB tem 100 produtos.
- Função get_product(id):
- Primeiro tenta Redis (key product:id).
- Se miss, vai a MongoDB.
- Guarda em Redis com TTL 60s.
Demonstra speedup do cache.
Resposta: