我创建了 rediscluster 并分配了具有新默认用户和密码的用户管理组,我可以使用此命令连接到 redis 集群 redis-cli -u "redis://username:password@hostname:6379" --tls此命令使用用户名和密码以及 tls 选项。另一方面,当我尝试在下面的 Java 代码片段中使用生菜客户端 6.0.0.RELEASE 做完全相同的事情时,我得到了连接超时异常。
import io.lettuce.core.*;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands;
import java.util.*;
class RedisTest{
public static void main(String[] args){
System.out.println("hello world2!");
RedisClient redisClient = RedisClient.create(RedisURI.Builder.redis("hostname",6379).withAuthentication("default","a-str0ng-pa))word".toCharArray()).withStartTls(true).build());
StatefulRedisConnection<String, String> connection = redisClient.connect();
RedisCommands<String, String> syncCommands = connection.sync();
syncCommands.set("key", "Hello, Redis!");
connection.close();
redisClient.shutdown();
System.out.println("exit working!");
}
}
我收到以下错误
Exception in thread "main" io.lettuce.core.RedisConnectionException: Unable to connect to hostname:6379
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:320)
at io.lettuce.core.RedisClient.connect(RedisClient.java:211)
at io.lettuce.core.RedisClient.connect(RedisClient.java:196)
at RedisTest.main(RedisTest.java:11)
Caused by: io.lettuce.core.RedisCommandTimeoutException: Connection initialization timed out. Command timed out after 1 minute(s)
at io.lettuce.core.internal.ExceptionFactory.createTimeoutException(ExceptionFactory.java:65)
at io.lettuce.core.protocol.RedisHandshakeHandler.lambda$channelRegistered$0(RedisHandshakeHandler.java:62)
at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)
at io.netty.util.concurrent.PromiseTask.run(PromiseTask.java:106)
at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)