Redis-rs para Rust: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Redis-rs y para qué sirve?

\n\n

Redis-rs es un cliente asíncrono y síncrono para Redis, escrito en el lenguaje Rust. Es una de las bibliotecas más populares y activamente mantenidas para trabajar con Redis en el ecosistema de Rust. Proporciona una interfaz conveniente, segura y de alto rendimiento para interactuar con el servidor Redis.

\n\n

¿Para qué sirve Redis-rs?

\n
    \n
  • Alto rendimiento: Rust es conocido por su velocidad y seguridad de memoria. Redis-rs hereda estas cualidades, garantizando una sobrecarga mínima al trabajar con Redis.
  • \n
  • Asincronía: La biblioteca está diseñada desde su origen para trabajar con runtimes asíncronos como Tokio y async-std, lo que permite manejar miles de conexiones sin bloquear hilos.
  • \n
  • Seguridad de tipos: El estricto sistema de tipos de Rust ayuda a evitar muchos errores en la etapa de compilación. Redis-rs aprovecha esta ventaja proporcionando comandos tipificados.
  • \n
  • Soporte para clústeres y replicación: La biblioteca admite el trabajo con clústeres de Redis, redirección automática de solicitudes y trabajo con réplicas.
  • \n
  • Comunidad activa: Redis-rs tiene una gran audiencia de desarrolladores, se actualiza regularmente y está bien documentada.
  • \n
\n\n

Esta biblioteca es ideal para crear aplicaciones web de alta carga, sistemas de caché, colas de mensajes, almacenes de sesiones y cualquier otro proyecto que requiera acceso rápido a datos a través de Redis.

\n\n

Instalación de Redis-rs

\n\n

Para instalar Redis-rs en tu proyecto de Rust, agrega la dependencia en el archivo Cargo.toml:

\n\n
[dependencies]\nredis = "0.27.0"  # Verifica la versión actual en crates.io\ntokio = { version = "1.0", features = ["full"] }  # Para ejecución asíncrona\n
\n\n

Luego ejecuta el comando:

\n\n
cargo build
\n\n

Si planeas usar el cliente síncrono, no necesitas Tokio, pero para el asíncrono es obligatorio.

\n\n

Inicio rápido con ejemplo de código

\n\n

Escribamos un programa simple que se conecte a Redis, escriba un valor y lo lea de vuelta.

\n\n
use redis::AsyncCommands;\nuse tokio;\n\n#[tokio::main]\nasync fn main() -> redis::RedisResult<()> {\n    // Establecemos la conexión con el 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    // Establecemos la clave "hello" con el valor "world"\n    con.set("hello", "world").await?;\n\n    // Obtenemos el valor de la clave "hello"\n    let value: String = con.get("hello").await?;\n    println!("Valor de la clave 'hello': {}", value);\n\n    Ok(())\n}\n
\n\n

Este ejemplo muestra el trabajo básico con Redis-rs: conexión, escritura y lectura de datos. Observa el uso de #[tokio::main] — es una macro que inicia el runtime asíncrono Tokio.

\n\n

Métodos y funciones principales de Redis-rs

\n\n

Veamos los 10 métodos más utilizados. Todos los ejemplos asumen que tienes una conexión asíncrona con, obtenida mediante client.get_async_connection().await?.

\n\n

1. set() — establecer un valor

\n

Descripción: Establece un valor para la clave especificada. Si la clave ya existe, el valor se sobrescribe.

\n

Parámetros:

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

Ejemplo:

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

2. get() — obtener un valor

\n

Descripción: Obtiene el valor de la clave especificada. Devuelve

Recommendations