redis_basic/
redis_basic.rs

1use redis::Commands;
2use redis::RedisResult;
3use rs_infras::xredis::RedisConf;
4
5fn main() {
6    let dsn = "redis://:@127.0.0.1:6379/0";
7    let pool = RedisConf::builder().with_dsn(dsn).init_pool();
8    let mut conn = pool.get().unwrap();
9
10    // 设置单个pool timeout
11    // let mut conn = pool.get_timeout(Duration::from_secs(2)).unwrap();
12    let res: RedisResult<String> = conn.set("my_user", "daheige");
13    if res.is_err() {
14        println!("redis set error:{}", res.err().unwrap().to_string());
15    } else {
16        println!("set success");
17    }
18}
19
20// async exec redis operation
21#[tokio::test]
22async fn redis_async_test() -> RedisResult<()> {
23    // you must use this module for async exec.
24    use redis::AsyncCommands;
25    let dsn = "redis://:@127.0.0.1:6379/0";
26    let client = RedisConf::builder().with_dsn(dsn).client().unwrap();
27    let mut conn = client.get_async_connection().await?;
28    conn.set("user1", "daheige").await?;
29
30    // async exec set cmd
31    redis::cmd("set")
32        .arg(&["user2", "foo"])
33        .query_async(&mut conn)
34        .await?;
35
36    let result = redis::cmd("mget")
37        .arg(&["user1", "user2"])
38        .query_async(&mut conn)
39        .await;
40    assert_eq!(result, Ok(("daheige".to_string(), "foo".to_string())));
41    Ok(())
42}