O que é Redis-rs e para que serve?
\n\nRedis-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\nPara 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
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\nInstalação do Redis-rs
\n\nPara instalar o Redis-rs no seu projeto Rust, adicione a dependência no arquivo Cargo.toml:
[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\nEm seguida, execute o comando:
\n\ncargo build\n\nSe você planeja usar o cliente síncrono, não precisa do Tokio, mas para o assíncrono ele é obrigatório.
\n\nInício rápido com exemplo de código
\n\nVamos escrever um programa simples que se conecta ao Redis, grava um valor e o lê de volta.
\n\nuse 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\nEste 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.
Principais métodos e funções do Redis-rs
\n\nVamos 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?.
1. set() — definindo um valor
\nDescrição: Define um valor para a chave especificada. Se a chave já existir, o valor é sobrescrito.
\nParâmetros:
\n- \n
key: K— chave (qualquer tipo que implementeToRedisArgs) \n value: V— valor (qualquer tipo que implementeToRedisArgs) \n
Exemplo:
\ncon.set("user:1:name", "Alice").await?;\ncon.set("counter", 42).await?;\n\n2. get() — obtendo um valor
\nDescrição: Obtém o valor pela chave especificada. Retorna