Imagem de destaque do blog justcode.com.br.

Como utilizar Python com o banco de dados Redis

Hoje veremos como utilizar a linguagem de programação Python com o banco de dados Redis através do conector redis.

Redis

O Redis é um banco de dados em memória de código aberto que é amplamente utilizado como um armazenamento de chave-valor de alta performance.

Ele é conhecido por sua velocidade e versatilidade, sendo utilizado em uma variedade de casos de uso, desde cache até mensagens e contagem de votos em tempo real.

Neste artigo, vamos explorar os conceitos fundamentais do Redis de uma maneira acessível para quem está começando.

Principais Conceitos do Redis

1. Chave-Valor: O Redis é um banco de dados de chave-valor, o que significa que os dados são armazenados como pares de chave-valor. Cada chave é única e está associada a um valor, que pode ser de vários tipos de dados, como strings, hashes, listas, conjuntos ou conjuntos ordenados.

2. Tipos de Dados: O Redis suporta vários tipos de dados, incluindo strings, hashes, listas, conjuntos e conjuntos ordenados. Cada tipo de dado tem suas próprias operações e funcionalidades específicas, permitindo uma grande flexibilidade no armazenamento e manipulação de dados.

3. Operações Atômicas: O Redis suporta operações atômicas, o que significa que uma operação é executada inteiramente ou não é executada de forma alguma. Isso garante que as operações em dados compartilhados sejam executadas de forma segura e consistente.

4. Persistência Opcional: Embora o Redis seja um banco de dados em memória, ele suporta persistência opcional em disco. Isso significa que os dados podem ser armazenados em disco para recuperação em caso de falha ou reinicialização do servidor.

5. Pub/Sub (Publicação/Assinatura): O Redis suporta um sistema de mensagens de publicação/assinatura, que permite que os clientes publiquem mensagens em canais e se inscrevam para receber mensagens de canais específicos. Isso é útil para comunicação em tempo real entre clientes e servidores.

O redis pode ser instalado usando o pip, que é o gerenciador de pacotes padrão do Python:

pip install "redis[hiredis]"

Depois de instalado, você pode importar o conector em seus scripts Python e usá-lo para se conectar a um servidor Redis e executar operações de banco de dados.


Contêiner

Para testar o código de exemplo foi utilizando o seguinte arquivo docker-compose.yaml:

services:
  db:
    image: redis:7.2.4
    container_name: Redis
    restart: on-failure
    ports:
      - '6379:6379'

📝 Contêiner testado com Docker e com o Podman.


Exemplo de CRUD

# -*- coding: utf-8 -*-
"""CRUD - Python - Redis."""

import redis

con = redis.Redis(host='localhost', port=6379, decode_responses=True)

# Remove keys.
if con.keys():
    for key in con.keys():
        con.delete(key)

# Create.
print('[!] Create [!]')
con.set('number', 0)

con.hset(
    'user:1',
    mapping={
        'name': 'renato',
        'age': 40
    },
)
con.hset(
    'user:2',
    mapping={
        'name': 'joão',
        'age': 20
    },
)

# Read.
print('\n[!] Read [!]')
print(con.keys())
print(con.get('number'))
print(con.hgetall('user:1'))

# Update.
print('\n[!] Update [!]')
print(con.hgetall('user:1'))
con.hset(
    'user:1',
    mapping={
        'name': 'rafael',
    },
)
print(con.hgetall('user:1'))

print(con.get('number'))
con.incr('number')
print(con.get('number'))

# Delete.
print('\n[!] Delete [!]')
print(con.keys())
con.delete('user:2')
print(con.keys())

Conclusão

O Redis é uma poderosa ferramenta de armazenamento em memória que oferece alta performance e flexibilidade.

Compreender os conceitos básicos, como chave-valor, tipos de dados, operações atômicas e pub/sub, pode ajudá-lo a utilizar o Redis de forma eficaz em seus projetos de desenvolvimento.