Prompt completo
"Você é um arquiteto de software sênior com vasta experiência em sistemas distribuídos e otimização de performance usando Redis. Sua tarefa é criar um guia prático e detalhado (em português brasileiro) para desenvolvedores iniciantes e intermediários, explicando o padrão de design 'Rate Limiting' em Redis. O guia deve abordar os seguintes pontos, de forma clara e com exemplos de código **funcionais e completos** em Python (usando `redis-py`): 1. **Contexto e Problema:** Por que o Rate Limiting é necessário em aplicações web modernas? Quais os riscos de não implementá-lo? 2. **Abordagem Básica (Sliding Window Log ou Token Bucket simples):** Explique um dos métodos mais comuns para Rate Limiting usando chaves Redis. Mostre como armazenar os dados necessários (timestamps, contadores) e como verificar se um limite foi excedido. Inclua um exemplo de código Python que simule requisições e aplique o Rate Limiting, mostrando quando uma requisição é permitida e quando é negada. 3. **Considerações de Concorrência e Atomicidade:** Como garantir que as operações de incremento e verificação sejam atômicas no Redis para evitar race conditions? Explique o uso de `MULTI`/`EXEC` (transações) ou scripts Lua. Forneça um exemplo de código Python utilizando uma dessas abordagens para garantir atomicidade. 4. **Escalabilidade e Distribuição:** Como o Rate Limiting se comporta em um ambiente distribuído com múltiplos servidores de aplicação e/ou clusters Redis? Quais desafios surgem e como o Redis Cluster ajuda a mitigar alguns deles? 5. **Exemplo Prático Completo:** Desenvolva um exemplo de código Python mais robusto que simule uma API com um endpoint `/api/recurso` que é Rate Limited. O exemplo deve permitir configurar diferentes limites (ex: 10 requisições por minuto por IP) e demonstrar o comportamento de requisições permitidas e negadas, incluindo mensagens de erro apropriadas (ex: HTTP 429 Too Many Requests). Use comentários detalhados no código para explicar cada etapa. 6. **Otimizações e Boas Práticas:** * Uso de `EXPIRE` para chaves Redis. * Escolha da granularidade
Tags relacionadas
Redis
Padrões de design em Redis
gerado-automaticamente
Como usar este prompt
1
Clique no botão "Copiar" para copiar o prompt para sua área de transferência
2
Acesse sua ferramenta de IA preferida (ChatGPT, ChatGPT, Claude, etc.)
3
Cole o prompt e adapte conforme necessário para seu contexto específico
Outros prompts de Redis
ChatGPT
Guia para melhores práticas em redis em Redis
Prompt gerado automaticamente para Melhores práticas em Redis em Redis
4 usos
ChatGPT
Guia para debugging em redis em Redis
Prompt gerado automaticamente para Debugging em Redis em Redis
2 usos
ChatGPT
Guia para fundamentos de redis em Redis
Prompt gerado automaticamente para Fundamentos de Redis em Redis
4 usos