Redis-py: trabalhando com Redis em Python

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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.                    

Recommendations