Partilhar: WhatsApp
aulify
UC UC00664 · T. Desenv. Software, T. Sist. Comp. Redes, T. Multimédia, T. Inform. Gestão

Ficha 02 · Redis e Elasticsearch

Cache, sessions, full-text search
Versão · Aluno
Tempo · 4 horas
Aluno(a)
Turma
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: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: