aulify
UC UC00664 · T. Desenv. Software, T. Sist. Comp. Redes e mais 2 cursos
Ficha 02 · Redis e Elasticsearch
Cache, sessions, full-text search
Versão · Aluno
Tempo · 4 horas
Aluno(a)
Turma
Nº
Data
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:1com name, age, email). - List: queue com 3 tasks (push, pop).
- Set: tags (
tags:post1com 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: