redisgo 0.1.2

package for handling redis in rust more easily
Documentation
# 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`:

```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

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

#### Get a Key

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

#### Delete a Key

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

#### Check if a Key Exists

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

#### Flush All Keys

```rust
RedisGo::flush_all().unwrap();
```

### Advanced Operations


#### Set a Key with TTL

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

#### Ping Redis

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

#### Get Connection Status

```rust
let status = RedisGo::get_connection_status();
```

#### Get Client Info

```rust
let info = RedisGo::get_client_info();
```

### Example Usage


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

```rust
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.