Redis-rs para Rust: guia completo com exemplos

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

O que é Redis-rs e para que serve?

\n\n

Redis-rs é um cliente assíncrono e síncrono para Redis, escrito na linguagem Rust. É uma das bibliotecas mais populares e ativamente mantidas para trabalhar com Redis no ecossistema Rust. Ela fornece uma interface conveniente, segura e de alto desempenho para interagir com o servidor Redis.

\n\n

Para que serve o Redis-rs?

\n
    \n
  • Alto desempenho: Rust é conhecido por sua velocidade e segurança de memória. O Redis-rs herda essas qualidades, garantindo sobrecarga mínima ao trabalhar com Redis.
  • \n
  • Assincronicidade: A biblioteca foi projetada desde o início para funcionar com runtimes assíncronos, como Tokio e async-std, permitindo processar milhares de conexões sem bloquear threads.
  • \n
  • Segurança de tipos: O sistema de tipos rigoroso do Rust ajuda a evitar muitos erros em tempo de compilação. O Redis-rs aproveita essa vantagem, fornecendo comandos tipados.
  • \n
  • Suporte a clusters e replicação: A biblioteca suporta trabalho com clusters Redis, redirecionamento automático de consultas e trabalho com réplicas.
  • \n
  • Comunidade ativa: O Redis-rs possui uma grande base de desenvolvedores, é atualizado regularmente e bem documentado.
  • \n
\n\n

Esta biblioteca é ideal para criar aplicações web de alta carga, sistemas de cache, filas de mensagens, armazenamentos de sessão e qualquer outro projeto que exija acesso rápido a dados através do Redis.

\n\n

Instalação do Redis-rs

\n\n

Para instalar o Redis-rs no seu projeto Rust, adicione a dependência no arquivo Cargo.toml:

\n\n
[dependencies]\nredis = "0.27.0"  # Verifique a versão atual no crates.io\ntokio = { version = "1.0", features = ["full"] }  # Para execução assíncrona\n
\n\n

Em seguida, execute o comando:

\n\n
cargo build
\n\n

Se você planeja usar o cliente síncrono, não precisa do Tokio, mas para o assíncrono ele é obrigatório.

\n\n

Início rápido com exemplo de código

\n\n

Vamos escrever um programa simples que se conecta ao Redis, grava um valor e o lê de volta.

\n\n
use redis::AsyncCommands;\nuse tokio;\n\n#[tokio::main]\nasync fn main() -> redis::RedisResult<()> {\n    // Estabelece conexão com o servidor Redis\n    let client = redis::Client::open("redis://127.0.0.1:6379/")?;\n    let mut con = client.get_async_connection().await?;\n\n    // Define a chave "hello" com o valor "world"\n    con.set("hello", "world").await?;\n\n    // Obtém o valor pela chave "hello"\n    let value: String = con.get("hello").await?;\n    println!("Valor da chave 'hello': {}", value);\n\n    Ok(())\n}\n
\n\n

Este exemplo mostra o trabalho básico com Redis-rs: conexão, gravação e leitura de dados. Observe o uso de #[tokio::main] — é uma macro que inicia o runtime assíncrono Tokio.

\n\n

Principais métodos e funções do Redis-rs

\n\n

Vamos considerar os 10 métodos mais utilizados. Todos os exemplos pressupõem que você tenha uma conexão assíncrona con, obtida através de client.get_async_connection().await?.

\n\n

1. set() — definindo um valor

\n

Descrição: Define um valor para a chave especificada. Se a chave já existir, o valor é sobrescrito.

\n

Parâmetros:

\n
    \n
  • key: K — chave (qualquer tipo que implemente ToRedisArgs)
  • \n
  • value: V — valor (qualquer tipo que implemente ToRedisArgs)
  • \n
\n

Exemplo:

\n
con.set("user:1:name", "Alice").await?;\ncon.set("counter", 42).await?;
\n\n

2. get() — obtendo um valor

\n

Descrição: Obtém o valor pela chave especificada. Retorna

Recommendations