|
1 |
| -extern crate futures; |
2 |
| -extern crate redis; |
3 | 1 | use futures::{future, prelude::*};
|
4 | 2 | use redis::{aio::MultiplexedConnection, RedisResult};
|
5 | 3 |
|
6 | 4 | async fn test_cmd(con: &MultiplexedConnection, i: i32) -> RedisResult<()> {
|
7 | 5 | let mut con = con.clone();
|
| 6 | + |
8 | 7 | let key = format!("key{}", i);
|
9 |
| - let key_2 = key.clone(); |
10 | 8 | let key2 = format!("key{}_2", i);
|
11 |
| - let key2_2 = key2.clone(); |
12 |
| - |
13 |
| - let foo_val = format!("foo{}", i); |
| 9 | + let value = format!("foo{}", i); |
14 | 10 |
|
15 |
| - let () = redis::cmd("SET") |
| 11 | + redis::cmd("SET") |
16 | 12 | .arg(&key[..])
|
17 |
| - .arg(foo_val.as_bytes()) |
| 13 | + .arg(&value) |
18 | 14 | .query_async(&mut con)
|
19 | 15 | .await?;
|
20 |
| - let () = redis::cmd("SET") |
| 16 | + |
| 17 | + redis::cmd("SET") |
21 | 18 | .arg(&[&key2, "bar"])
|
22 | 19 | .query_async(&mut con)
|
23 | 20 | .await?;
|
| 21 | + |
24 | 22 | redis::cmd("MGET")
|
25 |
| - .arg(&[&key_2, &key2_2]) |
| 23 | + .arg(&[&key, &key2]) |
26 | 24 | .query_async(&mut con)
|
27 | 25 | .map(|result| {
|
28 |
| - assert_eq!(Ok((foo_val, b"bar".to_vec())), result); |
| 26 | + assert_eq!(Ok((value, b"bar".to_vec())), result); |
29 | 27 | Ok(())
|
30 | 28 | })
|
31 | 29 | .await
|
32 | 30 | }
|
33 | 31 |
|
34 | 32 | #[tokio::main]
|
35 | 33 | async fn main() {
|
36 |
| - println!("Main starting..."); |
37 |
| - |
38 | 34 | let client = redis::Client::open("redis://127.0.0.1/").unwrap();
|
39 | 35 |
|
40 |
| - // features = ["tokio-rt-core"] must be specified on redis crate |
41 | 36 | let con = client.get_multiplexed_tokio_connection().await.unwrap();
|
42 | 37 |
|
43 | 38 | let cmds = (0..100).map(|i| test_cmd(&con, i));
|
44 | 39 | let result = future::try_join_all(cmds).await.unwrap();
|
45 |
| - assert_eq!(100, result.len()); |
46 | 40 |
|
47 |
| - println!("Main done."); |
| 41 | + assert_eq!(100, result.len()); |
48 | 42 | }
|
0 commit comments