redis 创建套接字失败

问题描述 投票:0回答:2

遇到redis连接问题。配置了主机和端口,docker中的redis容器工作正常,我不知道为什么会发生这个异常。

我如何运行此测试:

使用 redis 运行 docker 容器 -> 进入 redis cli 并执行“redis-server”

cli 截图:

在我进行测试之后。

附注redis 在控制台中运行良好

redis 控制台:

测试

@SpringBootTest
class MessengerApplicationTests {

    @Test
    void contextLoads() {
        Jedis jedis = new Jedis();

        System.out.println(jedis.keys("*"));
    }

}

异常

Failed to create socket.
    redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket.
        at app//redis.clients.jedis.DefaultJedisSocketFactory.createSocket(DefaultJedisSocketFactory.java:110)
        at app//redis.clients.jedis.Connection.connect(Connection.java:226)
        at app//redis.clients.jedis.BinaryClient.connect(BinaryClient.java:140)
        at app//redis.clients.jedis.Connection.sendCommand(Connection.java:163)
        at app//redis.clients.jedis.BinaryClient.keys(BinaryClient.java:248)
        at app//redis.clients.jedis.Client.keys(Client.java:130)
        at app//redis.clients.jedis.Jedis.keys(Jedis.java:380)
        at app//com.microservice.messenger.MessengerApplicationTests.contextLoads(MessengerApplicationTests.java:22)
        at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
        at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at [email protected]/java.lang.reflect.Method.invoke(Method.java:567)
        at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
        at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)

application.yml

server:
  port: ${SERVER_PORT:3031}

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/reg_auth_db
    username: postgres
    password: postgres

  flyway:
    url: jdbc:postgresql://localhost:5432/reg_auth_db
    user: postgres
    password: postgres

  rabbitmq:
      password: guest
      username: guest
      port: 15672
  redis:
    port: 6379
    host: localhost
docker redis jedis
2个回答
0
投票

我使用了错误的端口,因为我有一个企业版,它有三个不同的端口


0
投票

这对我有帮助

docker run -d -p 6379:6379 --name my_redis redis

同时设置超时

Jedis jedis = new Jedis("localhost",6379,3600);
© www.soinside.com 2019 - 2024. All rights reserved.