🔴
ChatGPT intermediate

Melhores práticas de padrões de design em redis para Redis

Prompt gerado automaticamente para Padrões de design em Redis em Redis

4 usos Redis

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