3 releases
0.1.2 | Jun 3, 2025 |
---|---|
0.1.1 | Jun 3, 2025 |
0.1.0 | Jun 3, 2025 |
#1667 in Database interfaces
53 downloads per month
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