Introdução
Redis é um armazenamento de dados em memória de alto desempenho, usado como cache, broker de mensagens, banco de dados ou fila. Ele suporta diversas estruturas de dados: strings, listas, conjuntos, hashes e outras. Para Python, existe o cliente oficial — redis-py, que fornece uma interface conveniente para a funcionalidade do Redis.
Redis-py é o cliente mais popular e confiável para trabalhar com Redis em aplicações Python. A biblioteca é ativamente desenvolvida e mantida pela comunidade, oferecendo uma API simples e intuitiva para interagir com o servidor Redis.
O que é a biblioteca redis-py
Redis-py é a biblioteca Python oficial para trabalhar com Redis, que oferece suporte completo a todos os recursos do Redis. A biblioteca é escrita em Python puro e fornece interfaces síncrona e assíncrona para trabalhar com o Redis.
Principais recursos do redis-py
A biblioteca oferece um conjunto completo de funções para trabalhar com Redis:
- Suporte a todos os tipos de dados do Redis
- Trabalho com transações e pipelines
- Funcionalidade Pub/Sub
- Suporte a Redis Sentinel e clusters
- Operação assíncrona via redis.asyncio
- Pool de conexões para otimização de desempenho
- Reconexão automática em caso de queda de conexão
Instalação e conexão
Instalação da biblioteca
pip install redis
Para instalar com dependências adicionais:
pip install redis[hiredis] # Para desempenho melhorado
Conexão ao Redis
Conexão básica ao Redis (padrão na porta 6379):
import redis
# Conexão ao Redis local
cliente = redis.Redis(host='localhost', port=6379, db=0)
# Conexão com senha
cliente = redis.Redis(host='localhost', port=6379, password='suasenha', db=0)
# Conexão via URL
cliente = redis.from_url('redis://localhost:6379/0')
Verificando a conexão
try:
resposta = cliente.ping()
print(f"Conexão estabelecida: {resposta}") # True
except redis.ConnectionError:
print("Erro ao conectar ao Redis")
Fundamentos do Redis e principais tipos de dados
O Redis suporta cinco tipos principais de dados, cada um com suas características e métodos de trabalho:
Strings
O tipo de dados mais básico do Redis. Pode armazenar texto, números e dados binários.
Listas (Lists)
Coleções ordenadas de strings. Suportam adição de elementos no início e no final.
Conjuntos (Sets)
Coleções não ordenadas de strings únicas. Suportam operações de interseção e união.
Hashes
Mapas entre campos string e valores. Ideais para representar objetos.
Conjuntos ordenados (Sorted Sets)
Conjuntos com uma pontuação para cada elemento. Os elementos são ordenados pela pontuação.
Comandos Redis principais via redis-py
Trabalhando com strings
# Definir e obter valor
cliente.set("usuario:nome", "João")
nome = cliente.get("usuario:nome").decode('utf-8')
# Definir com TTL
cliente.setex("sessao:123", 3600, "ativo") # 1 hora
# Trabalhando com números
cliente.set("contador", 0)
cliente.incr("contador") # Incrementar em 1
cliente.incrby("contador", 5) # Incrementar em 5
cliente.decr("contador") # Decrementar em 1
Trabalhando com listas
# Adicionar elementos
cliente.lpush("tarefas", "tarefa1", "tarefa2") # No início
cliente.rpush("tarefas", "tarefa3", "tarefa4") # No final
# Obter elementos
tarefas = cliente.lrange("tarefas", 0, -1) # Todos os elementos
primeira_tarefa = cliente.lpop("tarefas") # Remover e retornar o primeiro
ultima_tarefa = cliente. Também na biblioteca
MapKit para Swift: guia completo com exemplos práticos
Rate Limiting em Java: bibliotecas, algoritmos e implementação
Validação de dados em Swift (iOS/macOS): ferramentas e prática
Cliente OAuth para C# (.NET): implementação de autorização através de serviços terceiros