redis
Jedis를 사용하여 Java에서 Redis에 연결하는 방법
수색…
소개
Java의 Redis에는 10 개가 넘는 다른 클라이언트 라이브러리가 있습니다. 가장 인기있는 고객 중 하나는 Jedis 입니다.
비고
제다이 얻기
Jedis 라이브러리는 일반적으로 프로젝트의 빌드 환경에 내장 된 종속성 관리 시스템을 사용하여 Java 프로젝트에 추가됩니다. 두 가지 유명한 Java 빌드 시스템은 Maven과 Gradle입니다.
Gradle 사용
Jedis 라이브러리를 Gradle 프로젝트에 추가하려면 저장소를 구성하고 종속성을 추가해야합니다. 다음 스 니펫은 Jedis 라이브러리 버전 2.9.0을 Gradle 프로젝트에 추가하는 방법을 보여줍니다.
repositories {
mavenCentral()
}
dependencies {
compile 'redis.clients:jedis:2.9.0'
}
메이븐 사용하기
Jedis를 Maven 프로젝트에 추가하려면 의존성 목록에 의존성을 추가하고 라이브러리의 좌표를 제공해야한다. 다음 스 니펫이 pom.xml 파일에 추가됩니다.
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
Redis에 연결
풀 사용
대부분의 코드는 공유 연결 객체 풀을 사용하여 Redis에 연결하려고합니다. 풀을 사용하여 Redis에 연결하려면 두 가지 코드 블록이 필요합니다. 초기화시 응용 프로그램에서 연결 풀을 만들어야합니다.
JedisPoolConfig poolCfg = new JedisPoolConfig();
poolCfg.setMaxTotal(3);
pool = new JedisPool(poolCfg, hostname, port, 500, password, false);
JedisPoolConfig
는 풀 조정 옵션을 제공합니다.
응용 프로그램이 작업 부하를 처리 할 때 다음 코드를 사용하여 공유 풀에서 연결을 가져와야합니다.
try (Jedis jedis = pool.getResource()) {
...
}
가장 좋은 방법은 try-with-resources 블록 내에서 Jedis
연결 개체를 풀에서 가져 오는 것입니다.
풀 없음
단순한 응용 프로그램이나 통합 테스트와 같은 경우에는 공유 풀을 처리하지 않고 Jedis
연결 개체를 직접 만들 수 있습니다. 다음 코드를 사용하여이를 수행 할 수 있습니다.
try (Jedis jedis = new Jedis(hostname, port)) {
jedis.connect();
jedis.auth(password);
jedis.select(db);
. . .
}
다시 한번, try-with-resources 블록 내에 Jedis 클라이언트 객체를 만드는 것이 가장 좋습니다.
기본 Get / Set 명령어 실행하기
Redis 연결을 설정하면 Jedis
연결 개체를 사용하여 값을 가져 Jedis
설정할 수 있습니다.
도망
String value = jedis.get(myKey);
세트
jedis.put(myKey, "some value");
명령 실행
Jedis를 사용하여 Redis 명령을 실행하려면 풀에서 생성 한 Jedis
객체에 대해 메소드 호출을합니다. Jedis는 Redis 명령을 메소드 호출로 노출합니다. 몇 가지 예는 다음과 같습니다.
- String get(String key)
- Long geoadd(String key, double longitude, double latitude, String member)
- List<String> hmget(String key, String... fields)
- Long hsetnx(String key, String field, String value)
Redis에서 String 키의 값을 설정하려면 다음과 유사한 코드 블록을 사용합니다.
try (Jedis jedis = pool.getResource()) {
String myKey = "users:20";
String myValue = "active";
jedis.set(myKey, myValue);
}