Skip to main content

Crate qm_redis

Crate qm_redis 

Source
Expand description

Redis connection, caching, and work queue utilities.

This crate provides Redis connection management with connection pooling, distributed locking, caching with JSON serialization, and async work queues.

§Features

  • Connection Pooling: Deadpool-based connection pooling
  • Distributed Locks: Acquire and manage distributed locks
  • JSON Caching: Cache JSON-serializable types with automatic serialization
  • Work Queues: Async worker queues for background job processing
  • Configuration: Environment-based configuration with prefix support

§Usage

```ignore use qm_redis::{Redis, RedisConfig};

#tokio::main async fn main() -> anyhow::Result<()> { let redis = Redis::new()?; let mut con = redis.connect().await?; Ok(()) } ```

§Environment Variables

VariableDescriptionDefault
REDIS_HOSTRedis host127.0.0.1
REDIS_PORTRedis port6379
REDIS_DBRedis database number0
REDIS_USERNAMERedis username(none)
REDIS_PASSWORDRedis password(none)

Re-exports§

pub use deadpool_redis::redis;

Modules§

lock
Distributed locking utilities.
work_queue
Work queue implementation.

Macros§

redis
Macro to implement AsRef for a storage type.

Structs§

AsyncWorker
Async worker for processing jobs from a queue.
Inner
Internal state for Redis connection.
Json
JSON wrapper for Redis serialization.
Producer
Producer for adding jobs to a work queue.
Redis
Redis connection wrapper with connection pooling.
RedisConfig
Redis configuration.
WorkerContext
Context passed to worker functions.
Workers
Worker pool for background job processing.

Enums§

CacheError
Error type for cache operations.

Traits§

Work
Trait for implementing worker logic.

Functions§

mutex_run
Runs async function exclusively using Redis lock.

Type Aliases§

ExecItemFuture
Type for executable item futures.
RunningWorkers
Type for running worker futures.