2011-03-11 2 views
0

Java로 Redis를 사용하고자하므로 간단한 예제 (아래 코드 참조)로 this으로 시작했습니다.JRedis 클라이언트를 사용한 Hello World 예제

첫 번째 실행은 키, 값 쌍을 데이터베이스에 삽입하고 두 번째 실행은 값을 가져 와서 화면에 인쇄해야합니다. 내가 이해하지 못하는 두 가지 문제가 있습니다

  1. 나는 그것이 값이 명령 아니라고 오류를 출력 키를 삽입하면 "PING에 대한 오류 응답 => 알 수없는 명령을 ERR"안녕하세요 다시를! "이것은 나에게 이해가되지 않는다. 왜 문자열 값이 명령이라고 생각 하는가?

  2. 두 번째로 키 값을 인쇄 할 때 키의 값만 인쇄하면 가치가 있지만 "Hello Again!"이 인쇄 될 것으로 예상했습니다.

감사합니다. LP! 내가 어떤 대답을 얻을 수 있고이 예제의 저자을 시도했지만 행운하지 않았다

import org.jredis.ClientRuntimeException; 
import org.jredis.JRedis; 
import org.jredis.ProviderException; 
import org.jredis.RedisException; 
import org.jredis.protocol.Command; 
import org.jredis.ri.alphazero.JRedisClient; 
import static org.jredis.ri.alphazero.support.DefaultCodec.*; 

/** 
* [TODO: document me!] 
* 
* @author Joubin Houshyar ([email protected]) 
* @version alpha.0, Apr 15, 2009 
* @since alpha.0 
* 
*/ 

public class HelloAgain { 
    public static final String key = "jredis::examples::HelloAgain::message"; 
    public static void main(String[] args) { 
     String password = ""; 
     if(args.length > 0) password = args[0]; 
     new HelloAgain().run(password); 
    } 

    private void run(String password) { 
     try { 
      JRedis jredis = new JRedisClient("localhost", 6379, "jredis", 0); 
      jredis.ping(); 

      if(!jredis.exists(key)) { 
       jredis.set(key, "Hello Again!"); 
       System.out.format("Hello! You should run me again!\n"); 
      } 
      else { 
       String msg = toStr (jredis.get(key)); 
       System.out.format("%s\n", msg); 
      } 
      jredis.quit(); 
     } 
     catch (RedisException e){ 
      if (e.getCommand()==Command.PING){ 
       System.out.format("I'll need that password! Try again with password as command line arg for this program.\n"); 
      } 
     } 
     catch (ProviderException e){ 
      System.out.format("Oh no, an 'un-documented feature': %s\nKindly report it.", e.getMessage()); 
     } 
     catch (ClientRuntimeException e){ 
      System.out.format("%s\n", e.getMessage()); 
     } 
    } 
} 

답변

1

좋아요 :

여기에 코드입니다. 나는 약간의 독서를했으며이 Redis의 더 나은 Java 클라이언트라는 것을 알았습니다. 나는 그것을 시도하고 완벽하게 작동합니다; 사용이 매우 간단합니다.

1

필자는 저녁 시간에 실제로 근무했던 그의 일상 업무로 바빴다. 나는 당신이 이해할 것이라고 확신합니다.

저는 제다이를 보았습니다. 제다이는 아주 좋은 고객이고 꽤 훌륭한 성과를 보였습니다. 그리고이 포스트는 더 큰 특징을 제공합니다 (위 참조). 그러나 나는 사용의 복잡성을 줄이는 것을 보지 못했다. JRedis의 API는 Redis 명령 집합입니다. 더 이상, 덜도 아닙니다. JRedis는 일부 사람들에게는 "복잡"해 보일 수 있지만 숙련 된 사용자는 JRedis RI 구성 요소를 사용하여 자신의 전문 클라이언트를 작성하도록 선택해야만 모듈 식 설계가 클라이언트를 넘어서 활용할 수 있도록 허용합니다. (프로토콜, 커넥터 등)

문제는 Redis 서버 버전 (와이어 프로토콜이 변경됨)과 JRedis 버전이 일치하지 않기 때문입니다. JRedis의 현재 마스터 지점이 Redis 2.2.n을 준수하도록 업데이트되었습니다. 항상 그렇듯이 프로젝트 루트에서 규정 준수 참고 사항을 읽고 올바르게 일치하는 Redis 서버를 사용하고 있는지 확인하십시오.