Jedis

2017-12-08 25 views
0

내가Jedis

  boolean useSsl = false; 
      /* In this line, replace <name> with your cache name: */ 
      JedisShardInfo shardInfo = new JedisShardInfo("HOST_NAME", 6379, useSsl); 
      shardInfo.setPassword(ACCESS_KEY); /* Use your access key. */ 
      shardInfo.setConnectionTimeout(999999); 
      shardInfo.setSoTimeout(999999); 
      Jedis jedis = new Jedis(shardInfo); 
      jedis.set("foo", "bar"); 
      String value = jedis.get("foo"); 

나는 아래의 예외 동안을 얻고 자신의 사이트에 주어진 샘플 코드를 사용하여 푸른 외부에서의 푸른 Reddis 캐시 서비스에 연결하려고를 사용하여 서비스로 푸른 Reddis 캐시에 연결 Azure 외부에서 프로그램 실행

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: Software caused connection abort: recv failed 
     at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:202) 
     at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40) 
     at redis.clients.jedis.Protocol.process(Protocol.java:151) 
     at redis.clients.jedis.Protocol.read(Protocol.java:215) 
     at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:340) 
     at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239) 
     at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:96) 
     at redis.clients.jedis.Connection.sendCommand(Connection.java:126) 
     at redis.clients.jedis.BinaryClient.set(BinaryClient.java:110) 
     at redis.clients.jedis.Client.set(Client.java:47) 
     at redis.clients.jedis.Jedis.set(Jedis.java:120) 
     at com.oriental.redis.cache.TestClient.main(TestClient.java:65) 
Caused by: java.net.SocketException: Software caused connection abort: recv failed 
     at java.net.SocketInputStream.socketRead0(Native Method) 
     at java.net.SocketInputStream.socketRead(Unknown Source) 
     at java.net.SocketInputStream.read(Unknown Source) 
     at java.net.SocketInputStream.read(Unknown Source) 
     at java.net.SocketInputStream.read(Unknown Source) 
     at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:196) 
     ... 11 more 

이 오류는 Azure Redis 서버가 연결을 인식하지 못했음을 나타냅니다. 기본 Azure Subscription을 사용하고 있으므로 프리미엄 인스턴스를 만들지 못했습니다. 방화벽/IP 액세스 필터는 프리미엄 버전의 Azure Redis Cache에만 적용됩니다.

이것은 혼란 스럽습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

0

포트 6379 (비 SSL 포트)에 연결하려면 해당 포트를 명시 적으로 켜야합니다. 기본적으로 Azure Redis는 포트 6380을 통해 암호화 된 연결이 필요합니다. 자세한 내용은 https://docs.microsoft.com/en-us/azure/redis-cache/cache-configure#access-ports을 참조하십시오.

+0

감사합니다. @JonCole, 이미 6379를 사용했지만 네트워크 방화벽이 하늘색 구름과의 연결을 차단하고 있다는 문제가있었습니다. 포트에 대한 나가는 연결이 차단 해제되면 제대로 작동하기 시작합니다. –