자바용 Jedis 클라이언트 시작하기

자바용 Jedis 클라이언트 시작하기 (Jedis guide (Java))

자바 애플리케이션을 Redis 데이터베이스에 연결해 보려면 가장 먼저 클라이언트부터 골라야 해요. 자바에서는 대표적으로 JedisLettuce가 있는데, 이번에는 동기 방식으로 쓰기 편한 Jedis를 중심으로 시작해 볼게요.

출처: 공식문서

Jedis는 어떤 클라이언트인가요?

Jedis는 자바용 동기(synchronous) Redis 클라이언트예요. 만약 비동기나 리액티브 연결까지 지원하는 더 고급 클라이언트가 필요하다면 Lettuce를 쓰면 됩니다.

한 가지 짚고 넘어갈 게 있어요. Jedis 7.2.0부터 새 연결 API가 도입됐는데요.

새 API 클래스 대체하는 기존 클래스 사용 사례
RedisClient UnifiedJedis, JedisPool, JedisPooled 단일 연결 (커넥션 풀 포함)
RedisClusterClient JedisCluster Redis Cluster 연결
RedisSentinelClient JedisSentinelPool Redis Sentinel 연결

기존 클라이언트 클래스들은 이제 deprecated로 간주돼요. 참고로 Jedis는 실행 중인 Redis 서버가 필요하답니다. 서버가 없다면 Redis Open Source 설치 안내를 먼저 따라주세요.

설치하기

프로젝트의 의존성 파일에 Jedis를 추가하는 방법을 살펴볼게요.

Maven을 쓴다면:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>7.2.0</version>
</dependency>

Gradle을 쓴다면:

repositories {
    mavenCentral()
}
//...
dependencies {
    implementation 'redis.clients:jedis:7.2.0'
    //...
}

JAR 파일을 직접 쓰는 경우에는 최신 Jedis와 Apache Commons Pool2 JAR 파일을 Maven Central이나 다른 Maven 저장소에서 받아서 쓰면 돼요. 소스에서 직접 빌드할 수도 있고요.

연결하고 테스트하기

먼저 소스 파일에 필요한 import를 추가해요.

import redis.clients.jedis.RedisClient;

import java.util.HashMap;

import java.util.Map;

localhost의 6379 포트에 연결해 볼게요.

RedisClient jedis = new RedisClient("redis://localhost:6379");

연결이 됐는지 확인하려면 간단한 문자열 값을 저장하고 다시 꺼내 보면 돼요.

String res1 = jedis.set("bike:1", "Deimos");

System.out.println(res1); // >>> OK



String res2 = jedis.get("bike:1");

System.out.println(res2); // >>> Deimos

해시(hash)도 저장하고 꺼내 볼게요.

Map<String, String> hash = new HashMap<>();

hash.put("name", "John");

hash.put("surname", "Smith");

hash.put("company", "Redis");

hash.put("age", "29");



Long res3 = jedis.hset("user-session:123", hash);

System.out.println(res3); // >>> 4



Map<String, String> res4 = jedis.hgetAll("user-session:123");

System.out.println(res4);

// >>> {name=John, surname=Smith, company=Redis, age=29}

다 썼으면 연결을 닫아줘요.

jedis.close();

더 알아보기 (Learn more)

Jedis의 전체 API 레퍼런스는 javadoc.io에서 볼 수 있고, GitHub 저장소에도 유용한 문서와 예제가 있어요(특히 Jedis로 페일오버를 처리하는 방법 페이지가 유용합니다). 같은 섹션의 "Connect to the server" 페이지에서 클러스터 연결, TLS 연결, 커넥션 풀 설정 같은 심화 내용을 이어서 다뤄요.