HomeBlogGuestbookLab 

JDM's Blog

온갖 테스트 결과가 기록되는 이곳은 JDM's Blog입니다. :3

Jedis - Redis Java Client

Overview

Jedis(이하 "제디스")는 Redis를 자바에서 사용하기 위한 클라이언트입니다. Redis를 보다 편하게 사용하게 해주는 라이브러리죠. 물론 Redis 자바 클라이언트에는 제디스뿐만은 아니지만 제디스가 쉽고 간결하게 사용할 수 있어서 소개해드리려고 합니다.

Install

제디스 라이브러리를 사용하기 위한 방법을 소개해 드립니다.

Github

제디스 소스는 Github - Jedis에서 관리하고 있습니다. 소스가 궁금하거나 궁금한점이 있다면 이곳을 방문하세요.

Maven

메이븐을 사용중이라면 pom.xml 파일에 다음을 추가하는 것만으로 라이브러리를 사용할 준비를 할 수 있습니다.

<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>2.7.3</version>
	<type>jar</type>
	<scope>compile</scope>
</dependency>

Usage Jedis

제디스를 사용하는 방법은 Getting-started 링크가 잘 되어 있습니다. 하지만 간단하게 사용법을 보여드리겠습니다.

Basic Example

간단하게 쓰는 방법은 아래와 같습니다.

Jedis jedis = new Jedis("localhost:8011");
jedis.set("key", "value");
String value = jedis.get("key");

Pool Example

위에서 말씀드린 간단한 방법은 테스트하는 용도로는 적절하지만 실제 서비스에 사용하고자 한다면 JedisPool 객체를 이용하면 좋습니다.

@Test
public void testRedisConnect(){
	JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
	JedisPool pool = new JedisPool(jedisPoolConfig, "localhost", "8011", 1000, "password");

	Jedis jedis = pool.getResource();

	jedis.set("foo", "bar");
	String value = jedis.get("foo");
	assertTrue( value != null && value.equals("bar") );

	jedis.del("foo");
	value = jedis.get("foo");
	assertTrue( value == null );

	if( jedis != null ){
		jedis.close();
	}
}

간단하게 Junit 테스트 메소드로 만들어 봤습니다. JedisPool을 사용하기 위해 JedisPoolConfig 객체를 생성해 넣어주고 접속 호스트, 포트, 타임아웃 시간, 패스워드를 차례대로 넣어줬습니다. 그렇게 해서 만든 JedisPool에서 Jedis를 꺼내오고 사용한뒤 close() 메소드를 호출해서 반드시 반납을 해줘야 합니다.

Set Expire Time

모든 값을 Redis에 남겨두면 좋겠지만 불필요한 리소스는 빠르게 정리해주는 것이 좋은 경우가 많습니다. 제디스에서도 특정 키에 데이터 만료 시간을 지정할 수 있습니다. 지정된 만료 시간이 지나면 해당 키와 데이터는 삭제됩니다. 간단하게 코드로 보면 다음과 같습니다.

Jedis jedis = jedisPool.getResource();
try{
	jedis.set("key", "value");
	jedis.expire("key", 1000); // 해당 입력하는 값은 초(sec) 단위입니다.
}catch(Exception e){
}finally{
	if( jedis != null ){
		jedis.close();
	}
}

Closing Remarks

간단하게 제디스의 사용법에 대해 알아 봤습니다. :3