From 28b43acc4cf8c7a7066aaaa89be27c4912534e55 Mon Sep 17 00:00:00 2001 From: Alonexc Date: Wed, 10 Apr 2024 19:49:14 +0800 Subject: [PATCH] redis client update --- .../function/SDK/config/CreateRedisConfig.java | 10 ++++++++++ .../function/SDK/operation/RedisSDKOperation.java | 15 +++++++++++++-- .../operation/RedisSDKCreateOperationTest.java | 10 +++++++--- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/SDK/config/CreateRedisConfig.java b/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/SDK/config/CreateRedisConfig.java index a4577491..ec23c483 100644 --- a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/SDK/config/CreateRedisConfig.java +++ b/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/SDK/config/CreateRedisConfig.java @@ -17,13 +17,23 @@ package org.apache.eventmesh.dashboard.core.function.SDK.config; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor public class CreateRedisConfig implements CreateSDKConfig { private String redisUrl; + private String password; + + private Integer timeOut; + @Override public String getUniqueKey() { return redisUrl; diff --git a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/SDK/operation/RedisSDKOperation.java b/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/SDK/operation/RedisSDKOperation.java index 5fd3d4f1..1717f54d 100644 --- a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/SDK/operation/RedisSDKOperation.java +++ b/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/SDK/operation/RedisSDKOperation.java @@ -21,17 +21,28 @@ import org.apache.eventmesh.dashboard.core.function.SDK.config.CreateRedisConfig; import org.apache.eventmesh.dashboard.core.function.SDK.config.CreateSDKConfig; +import java.time.Duration; import java.util.AbstractMap.SimpleEntry; import io.lettuce.core.RedisClient; +import io.lettuce.core.RedisURI; import io.lettuce.core.api.StatefulRedisConnection; public class RedisSDKOperation extends AbstractSDKOperation> { @Override public SimpleEntry> createClient(CreateSDKConfig clientConfig) { - String redisUrl = ((CreateRedisConfig) clientConfig).getRedisUrl(); - RedisClient redisClient = RedisClient.create(redisUrl); + CreateRedisConfig redisConfig = (CreateRedisConfig) clientConfig; + String redisUrl = redisConfig.getRedisUrl(); + String clientHost = redisUrl.split(":")[0]; + int clientPort = Integer.parseInt(redisUrl.split(":")[1]); + RedisURI redisURI = RedisURI.builder() + .withHost(clientHost) + .withPort(clientPort) + .withPassword(redisConfig.getPassword()) + .withTimeout(Duration.ofSeconds(redisConfig.getTimeOut())) + .build(); + RedisClient redisClient = RedisClient.create(redisURI); return new SimpleEntry<>(clientConfig.getUniqueKey(), redisClient.connect()); } diff --git a/eventmesh-dashboard-core/src/test/java/org/apache/eventmesh/dashboard/core/function/SDK/operation/RedisSDKCreateOperationTest.java b/eventmesh-dashboard-core/src/test/java/org/apache/eventmesh/dashboard/core/function/SDK/operation/RedisSDKCreateOperationTest.java index 7ccb2efc..050c6b07 100644 --- a/eventmesh-dashboard-core/src/test/java/org/apache/eventmesh/dashboard/core/function/SDK/operation/RedisSDKCreateOperationTest.java +++ b/eventmesh-dashboard-core/src/test/java/org/apache/eventmesh/dashboard/core/function/SDK/operation/RedisSDKCreateOperationTest.java @@ -36,12 +36,16 @@ class RedisSDKCreateOperationTest { @Test void testCreateClient() { - CreateRedisConfig createClientConfig = new CreateRedisConfig(); - createClientConfig.setRedisUrl("redis://localhost:6379"); + CreateRedisConfig createClientConfig = CreateRedisConfig.builder() + .redisUrl("localhost:6379") + .password("") + .timeOut(5) + .build(); + // createClientConfig.setRedisUrl("redis://localhost:6379"); SimpleEntry> simpleEntry = null; try { simpleEntry = redisClientCreateOperation.createClient(createClientConfig); - assertEquals("redis://localhost:6379", simpleEntry.getKey()); + assertEquals("localhost:6379", simpleEntry.getKey()); String response = simpleEntry.getValue().sync().ping(); log.info("response:{}", response); simpleEntry.getValue().close();