Rust web 开发-7.redis

本篇介绍一下 Rust 如何使用 redis。

Redis 的官方库 https://crates.io/crates/redis

添加依赖

redis = "0.23.3"

连接 redis

let client = redis::Client::open("redis://127.0.0.1/")?;

获取 redis 链接

let connection = client.get_connection().unwrap();

执行 redis 命令

pub fn set_ex(key: String, value: String, seconds: i32) -> bool {
    get_redis_conn()
        .set_ex::<String, String, bool>(key, value, seconds as usize)
        .unwrap_or_else(|err| {
            error!("Failed to set_ex value in Redis: {:?}", err);
            false
        })
}

pub fn get(key: String) -> String {
    get_redis_conn()
        .get::<String, String>(key)
        .unwrap_or_else(|err| {
            error!("Failed to get value from Redis: {:?}", err);
            "".to_string()
        })
}

写了两个命令的实现,一个是 set_ex,一个是 get,api 中调用。


#[get("/set_redis")]
async fn set_redis() -> HttpResponse{
    let result = middleware::redis_client::set_ex("hello".to_string(), "hello".to_string(), 100);
    success(Some(result))
}

#[get("/get_redis")]
async fn get_redis() -> HttpResponse{
    let result = middleware::redis_client::get("hello".to_string());
    success(Some(result))
}

测试一下

curl "http://localhost:8099/set_redis" \
     -H 'token: 1'

curl "http://localhost:8099/get_redis" \
    -H 'token: 1'

在 redis 中查询一下

以上代码在 github

2023/11/29 15:07 下午 posted in  Rust web rust