|
16 | 16 | // under the License.
|
17 | 17 |
|
18 | 18 | use bb8::RunError;
|
| 19 | +use bytes::Bytes; |
19 | 20 | use http::Uri;
|
20 | 21 | use redis::cluster::ClusterClient;
|
21 | 22 | use redis::cluster::ClusterClientBuilder;
|
22 |
| -use redis::Client; |
23 | 23 | use redis::ConnectionAddr;
|
24 | 24 | use redis::ConnectionInfo;
|
25 | 25 | use redis::ProtocolVersion;
|
26 | 26 | use redis::RedisConnectionInfo;
|
| 27 | +use redis::{AsyncCommands, Client}; |
27 | 28 | use std::fmt::Debug;
|
28 | 29 | use std::fmt::Formatter;
|
29 | 30 | use std::path::PathBuf;
|
30 | 31 | use std::time::Duration;
|
31 | 32 | use tokio::sync::OnceCell;
|
32 | 33 |
|
| 34 | +use super::core::*; |
33 | 35 | use crate::raw::adapters::kv;
|
34 | 36 | use crate::raw::*;
|
35 | 37 | use crate::services::RedisConfig;
|
36 | 38 | use crate::*;
|
37 | 39 |
|
38 |
| -use super::core::*; |
39 | 40 | const DEFAULT_REDIS_ENDPOINT: &str = "tcp://127.0.0.1:6379";
|
40 | 41 | const DEFAULT_REDIS_PORT: u16 = 6379;
|
41 | 42 |
|
@@ -345,26 +346,33 @@ impl kv::Adapter for Adapter {
|
345 | 346 |
|
346 | 347 | async fn get(&self, key: &str) -> Result<Option<Buffer>> {
|
347 | 348 | let mut conn = self.conn().await?;
|
348 |
| - let result = conn.get(key).await?; |
349 |
| - Ok(result) |
| 349 | + let result: Option<Bytes> = conn.get(key).await.map_err(format_redis_error)?; |
| 350 | + Ok(result.map(Buffer::from)) |
350 | 351 | }
|
351 | 352 |
|
352 | 353 | async fn set(&self, key: &str, value: Buffer) -> Result<()> {
|
353 | 354 | let mut conn = self.conn().await?;
|
354 | 355 | let value = value.to_vec();
|
355 |
| - conn.set(key, value, self.default_ttl).await?; |
| 356 | + if let Some(dur) = self.default_ttl { |
| 357 | + let _: () = conn |
| 358 | + .set_ex(key, value, dur.as_secs()) |
| 359 | + .await |
| 360 | + .map_err(format_redis_error)?; |
| 361 | + } else { |
| 362 | + let _: () = conn.set(key, value).await.map_err(format_redis_error)?; |
| 363 | + } |
356 | 364 | Ok(())
|
357 | 365 | }
|
358 | 366 |
|
359 | 367 | async fn delete(&self, key: &str) -> Result<()> {
|
360 | 368 | let mut conn = self.conn().await?;
|
361 |
| - conn.delete(key).await?; |
| 369 | + let _: () = conn.del(key).await.map_err(format_redis_error)?; |
362 | 370 | Ok(())
|
363 | 371 | }
|
364 | 372 |
|
365 | 373 | async fn append(&self, key: &str, value: &[u8]) -> Result<()> {
|
366 | 374 | let mut conn = self.conn().await?;
|
367 |
| - conn.append(key, value).await?; |
| 375 | + let _: () = conn.append(key, value).await.map_err(format_redis_error)?; |
368 | 376 | Ok(())
|
369 | 377 | }
|
370 | 378 | }
|
0 commit comments