3 releases

0.1.2 Jun 3, 2025
0.1.1 Jun 3, 2025
0.1.0 Jun 3, 2025

#1667 in Database interfaces

Download history 276/week @ 2025-05-31 35/week @ 2025-06-07 1/week @ 2025-06-21 1/week @ 2025-06-28

53 downloads per month

MIT/Apache

11KB
164 lines

RedisGo

RedisGo is a Rust library designed to simplify interactions with Redis, providing a convenient API for common Redis operations such as setting, getting, deleting keys, and more. It leverages the redis crate and includes features like connection management and .env file support for configuration.

Installation

Add the following to your Cargo.toml:

[dependencies]
redisgo = "*"

Usage

Initialization

Ensure your .env file contains the REDIS_URL variable:

REDIS_URL=redis://127.0.0.1/

Basic Operations

Set a Key

RedisGo::set("key", "value")?;

Get a Key

let value = RedisGo::get("key")?;

Delete a Key

RedisGo::delete("key").unwrap();

Check if a Key Exists

let exists = RedisGo::exists("key").unwrap();

Flush All Keys

RedisGo::flush_all().unwrap();

Advanced Operations

Set a Key with TTL

RedisGo::set_with_ttl("key", "value", Some(60)).unwrap(); // TTL in seconds

Ping Redis

let response = RedisGo::ping().unwrap();

Get Connection Status

let status = RedisGo::get_connection_status();

Get Client Info

let info = RedisGo::get_client_info();

Example Usage

Here is an example of how to use the RedisGo library to implement a simple counter:

use redisgo::RedisGo;

fn main() {
    println!("Hello, world!");
    let counter_key = "counter"; 
    match RedisGo::get(counter_key) {
        Ok(Some(value)) => {
            let count: i32 = value.parse().unwrap_or(0);
            let new_count = count + 1;
            RedisGo::set(counter_key, &new_count.to_string()).unwrap();
            println!("Counter incremented to: {}", new_count);
        }
        Ok(None) => {
            RedisGo::set(counter_key, "1").unwrap();
            println!("Counter initialized to 1");
        }
        Err(e) => {
            eprintln!("Error accessing Redis: {}", e);
        }
    }
    println!("Hello, world!");
}

Rusty Rails Project

Rusty Rails is a larger project aiming to bridge the gap between Rust and Ruby/Ruby on Rails. We are actively working on recreating Ruby libraries into Rust that seamlessly make working in Rust more easy and fun for new developers.

Contributing

Contributions to the RedisGo library are welcome! Feel free to open issues, submit pull requests, or provide feedback to help improve this library.

Dependencies

~5–13MB
~160K SLoC