Skip to content

Commit cd48b30

Browse files
DOC-5791 added async examples and improved sync ones
1 parent ae5a6b4 commit cd48b30

File tree

2 files changed

+152
-8
lines changed

2 files changed

+152
-8
lines changed
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
2+
// EXAMPLE: set_tutorial
3+
#[cfg(test)]
4+
mod tests {
5+
use redis::{AsyncCommands, ExistenceCheck};
6+
7+
#[tokio::test]
8+
async fn run() {
9+
let mut r = match redis::Client::open("redis://127.0.0.1") {
10+
Ok(client) => {
11+
match client.get_multiplexed_async_connection().await {
12+
Ok(conn) => conn,
13+
Err(e) => {
14+
println!("Failed to connect to Redis: {e}");
15+
return;
16+
}
17+
}
18+
},
19+
Err(e) => {
20+
println!("Failed to create Redis client: {e}");
21+
return;
22+
}
23+
};
24+
25+
// STEP_START set_get
26+
if let Ok(res) = r.set("bike:1", "Deimos").await {
27+
let res: String = res;
28+
println!("{res}"); // >>> OK
29+
// REMOVE_START
30+
assert_eq!(res, "OK");
31+
// REMOVE_END
32+
}
33+
34+
match r.get("bike:1").await {
35+
Ok(res) => {
36+
let res: String = res;
37+
println!("{res}"); // >>> Deimos
38+
// REMOVE_START
39+
assert_eq!(res, "Deimos");
40+
// REMOVE_END
41+
},
42+
Err(e) => {
43+
println!("Error getting foo: {e}");
44+
return;
45+
}
46+
};
47+
// STEP_END
48+
49+
// STEP_START setnx_xx
50+
if let Ok(res) = r.set_options("bike:1", "bike", redis::SetOptions::default().conditional_set(ExistenceCheck::NX)).await {
51+
let res: bool = res;
52+
println!("{res}"); // >>> false
53+
// REMOVE_START
54+
assert!(!res);
55+
// REMOVE_END
56+
}
57+
58+
match r.get("bike:1").await {
59+
Ok(res) => {
60+
let res: String = res;
61+
println!("{res}"); // >>> Deimos
62+
// REMOVE_START
63+
assert_eq!(res, "Deimos");
64+
// REMOVE_END
65+
},
66+
Err(e) => {
67+
println!("Error getting foo: {e}");
68+
return;
69+
}
70+
};
71+
72+
if let Ok(res) = r.set_options("bike:1", "bike", redis::SetOptions::default().conditional_set(ExistenceCheck::XX)).await {
73+
let res: String = res;
74+
println!("{res}"); // >>> OK
75+
// REMOVE_START
76+
assert_eq!(res, "OK");
77+
// REMOVE_END
78+
}
79+
80+
match r.get("bike:1").await {
81+
Ok(res) => {
82+
let res: String = res;
83+
println!("{res}"); // >>> bike
84+
// REMOVE_START
85+
assert_eq!(res, "bike");
86+
// REMOVE_END
87+
},
88+
Err(e) => {
89+
println!("Error getting foo: {e}");
90+
return;
91+
}
92+
};
93+
// STEP_END
94+
95+
// STEP_START mset
96+
if let Ok(res) = r.mset(&[("bike:1", "Deimos"), ("bike:2", "Ares"), ("bike:3", "Vanth")]).await {
97+
let res: String = res;
98+
println!("{res}"); // >>> OK
99+
// REMOVE_START
100+
assert_eq!(res, "OK");
101+
// REMOVE_END
102+
}
103+
104+
match r.mget(&["bike:1", "bike:2", "bike:3"]).await {
105+
Ok(res) => {
106+
let res: Vec<String> = res;
107+
println!("{res:?}"); // >>> ["Deimos", "Ares", "Vanth"]
108+
// REMOVE_START
109+
assert_eq!(res.len(), 3);
110+
assert_eq!(res[0], "Deimos");
111+
assert_eq!(res[1], "Ares");
112+
assert_eq!(res[2], "Vanth");
113+
// REMOVE_END
114+
},
115+
Err(e) => {
116+
println!("Error getting foo: {e}");
117+
return;
118+
}
119+
};
120+
// STEP_END
121+
122+
// STEP_START incr
123+
if let Ok(res) = r.set("total_crashes", 0).await {
124+
let res: String = res;
125+
println!("{res}"); // >>> OK
126+
// REMOVE_START
127+
assert_eq!(res, "OK");
128+
// REMOVE_END
129+
}
130+
131+
if let Ok(res) = r.incr("total_crashes", 1).await {
132+
let res: i32 = res;
133+
println!("{res}"); // >>> 1
134+
// REMOVE_START
135+
assert_eq!(res, 1);
136+
// REMOVE_END
137+
}
138+
139+
if let Ok(res) = r.incr("total_crashes", 10).await {
140+
let res: i32 = res;
141+
println!("{res}"); // >>> 11
142+
// REMOVE_START
143+
assert_eq!(res, 11);
144+
// REMOVE_END
145+
}
146+
// STEP_END
147+
}
148+
}

local_examples/rust-sync/dt-string.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ mod strings_tests {
3030
// REMOVE_START
3131
assert_eq!(res, "OK");
3232
// REMOVE_END
33-
} else {
34-
println!("Error setting foo");
3533
}
3634

3735
match r.get("bike:1") {
@@ -43,7 +41,7 @@ mod strings_tests {
4341
// REMOVE_END
4442
},
4543
Err(e) => {
46-
println!("Error getting foo: {e}");
44+
println!("Error getting bike:1: {e}");
4745
return;
4846
}
4947
};
@@ -56,8 +54,6 @@ mod strings_tests {
5654
// REMOVE_START
5755
assert!(!res);
5856
// REMOVE_END
59-
} else {
60-
println!("Error setting foo");
6157
}
6258

6359
match r.get("bike:1") {
@@ -69,7 +65,7 @@ mod strings_tests {
6965
// REMOVE_END
7066
},
7167
Err(e) => {
72-
println!("Error getting foo: {e}");
68+
println!("Error getting bike:1: {e}");
7369
return;
7470
}
7571
};
@@ -91,7 +87,7 @@ mod strings_tests {
9187
// REMOVE_END
9288
},
9389
Err(e) => {
94-
println!("Error getting foo: {e}");
90+
println!("Error getting bike:1: {e}");
9591
return;
9692
}
9793
};
@@ -118,7 +114,7 @@ mod strings_tests {
118114
// REMOVE_END
119115
},
120116
Err(e) => {
121-
println!("Error getting foo: {e}");
117+
println!("Error getting values: {e}");
122118
return;
123119
}
124120
};

0 commit comments

Comments
 (0)