[][src]Crate ciseaux_client

This is a simple asynchronous Redis Pool, currently only supports a connection pool to a Single Redis instance, and will probably provide Cluster support later. If you want to understand how to use it, see examples and/or CiseauxSingle struct.

The library currently supports tokio only (Because of redis-rs, async-std support is coming), and require at least Rust 1.39

[dependencies]
ciseaux_client = "0.3"

Example

Create a connection pool default settings and the provided redis::Client (from redis-rs)

use redis::{Client, Cmd};
use ciseaux_client::CiseauxSingle;

#[tokio::main]
async fn main() {
    let redis_client = Client::open("redis://127.0.0.1:6379").unwrap();
    let db_pool = CiseauxSingle::new(redis_client).await.expect("Failed to create Pool");
    // You can safely share CiseauxSingle between threads
    // since it use Arcs and Mutexes under the hood)
    let res = match db_pool.query::<_, Option<String>>(&redis::Cmd::get("hello")).await {
        Ok(v) => v,
        Err(e) => return,// Handle Error
    };
    let hello = match res {
        Some(v) => v,
        None => return,// Handle Nil value
    };
    println!("{}", hello);
}

Re-exports

pub use redis;

Structs

CiseauxSingle

A connections pool to a single Redis instance

SingleInit

An Init Struct to create a customized CiseauxSingle connections pool. This is like a Builder, but using public fields instead of functions

Enums

ConnectionsCount

To change the default pool size

ReconnectBehavior

To change the default behavior of the pool on network/io error.

Traits

QueryAble

A trait that allow to have a single CiseauxSingle query, and not a query_x per redis commands types (redis::Cmd and redis::Pipeline). Implemented for redis::Cmd and redis::Pipeline (including &, and &mut)