This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git


The following commit(s) were added to refs/heads/main by this push:
     new 3eba72597 chore: Upgrade redis dependency to version 1 (#6959)
3eba72597 is described below

commit 3eba725971457597dfc11e8ba12f03f8176da1c1
Author: Shachar Langbeheim <[email protected]>
AuthorDate: Tue Dec 9 12:51:56 2025 +0200

    chore: Upgrade redis dependency to version 1 (#6959)
    
    Upgrade redis dependency to version 1
---
 core/Cargo.lock                          | 15 +++++++++++----
 core/core/Cargo.toml                     |  2 +-
 core/core/src/services/redis/backend.rs  | 33 +++++++++++++++++++++-----------
 core/core/src/services/sqlite/backend.rs |  2 +-
 4 files changed, 35 insertions(+), 17 deletions(-)

diff --git a/core/Cargo.lock b/core/Cargo.lock
index 6e507649a..b29dab5b6 100644
--- a/core/Cargo.lock
+++ b/core/Cargo.lock
@@ -209,6 +209,12 @@ version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
 
+[[package]]
+name = "arcstr"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "03918c3dbd7701a85c6b9887732e2921175f26c350b4563841d0958c21d57e6d"
+
 [[package]]
 name = "argon2"
 version = "0.5.3"
@@ -6765,7 +6771,7 @@ version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1"
 dependencies = [
- "heck 0.4.1",
+ "heck 0.5.0",
  "itertools 0.14.0",
  "log",
  "multimap",
@@ -7192,18 +7198,18 @@ dependencies = [
 
 [[package]]
 name = "redis"
-version = "0.32.7"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "014cc767fefab6a3e798ca45112bccad9c6e0e218fbd49720042716c73cfef44"
+checksum = "47ba378d39b8053bffbfc2750220f5a24a06189b5129523d5db01618774e0239"
 dependencies = [
  "arc-swap",
+ "arcstr",
  "backon",
  "bytes",
  "cfg-if",
  "combine",
  "crc16",
  "futures-channel",
- "futures-sink",
  "futures-util",
  "itoa",
  "log",
@@ -7222,6 +7228,7 @@ dependencies = [
  "tokio-rustls 0.26.4",
  "tokio-util",
  "url",
+ "xxhash-rust",
 ]
 
 [[package]]
diff --git a/core/core/Cargo.toml b/core/core/Cargo.toml
index 136f2f9c5..fc6b50471 100644
--- a/core/core/Cargo.toml
+++ b/core/core/Cargo.toml
@@ -257,7 +257,7 @@ persy = { version = "1.7.1", optional = true }
 # for services-redb
 redb = { version = "2", optional = true }
 # for services-redis
-redis = { version = "0.32", features = [
+redis = { version = "1.0", features = [
   "cluster-async",
   "tokio-comp",
   "connection-manager",
diff --git a/core/core/src/services/redis/backend.rs 
b/core/core/src/services/redis/backend.rs
index 1b219f44f..a23f303bb 100644
--- a/core/core/src/services/redis/backend.rs
+++ b/core/core/src/services/redis/backend.rs
@@ -22,6 +22,7 @@ use http::Uri;
 use redis::Client;
 use redis::ConnectionAddr;
 use redis::ConnectionInfo;
+use redis::IntoConnectionInfo;
 use redis::ProtocolVersion;
 use redis::RedisConnectionInfo;
 use redis::cluster::ClusterClientBuilder;
@@ -244,17 +245,27 @@ impl RedisBuilder {
             }
         };
 
-        let redis_info = RedisConnectionInfo {
-            db: self.config.db,
-            username: self.config.username.clone(),
-            password: self.config.password.clone(),
-            protocol: ProtocolVersion::RESP2,
-        };
-
-        Ok(ConnectionInfo {
-            addr: con_addr,
-            redis: redis_info,
-        })
+        let mut redis_info = RedisConnectionInfo::default()
+            .set_db(self.config.db)
+            .set_protocol(ProtocolVersion::RESP2);
+        if let Some(username) = &self.config.username {
+            redis_info = redis_info.set_username(username);
+        }
+        if let Some(password) = &self.config.password {
+            redis_info = redis_info.set_password(password);
+        }
+        let connection_info = con_addr
+            .clone()
+            .into_connection_info()
+            .map_err(|err| {
+                Error::new(ErrorKind::ConfigInvalid, "invalid connection 
address")
+                    .with_context("service", REDIS_SCHEME)
+                    .with_context("address", con_addr)
+                    .with_context("error", err)
+            })?
+            .set_redis_settings(redis_info);
+
+        Ok(connection_info)
     }
 }
 
diff --git a/core/core/src/services/sqlite/backend.rs 
b/core/core/src/services/sqlite/backend.rs
index 8b05e765b..79d8ce923 100644
--- a/core/core/src/services/sqlite/backend.rs
+++ b/core/core/src/services/sqlite/backend.rs
@@ -356,6 +356,6 @@ mod test {
         let accessor = 
SqliteBackend::new(core).with_normalized_root("/test/".to_string());
 
         assert_eq!(accessor.root, "/test/");
-        assert_eq!(accessor.info.root(), "/test/".into());
+        assert_eq!(accessor.info.root(), Arc::from("/test/"));
     }
 }

Reply via email to