
Redis 클러스터와의 연결 및 명령 수행 작업을 위한 추상 클래스 생성하였습니다.
1.필요한 변수 생성
// Redis 클러스터 명령을 실행하기 위한 변수
RedisClusterCommands<String, String> command;
// Redis 클러스터 연결을 관리하는 제네릭 객체 풀
GenericObjectPool<StatefulRedisClusterConnection<String, String>> pool;
// 독립형 Redis 연결을 관리하는 제네릭 객체 풀
GenericObjectPool<StatefulRedisConnection<String, String>> spool;
// Redis 클러스터 연결
StatefulRedisClusterConnection<String, String> clConnection;
// 독립형 Redis 연결
StatefulRedisConnection<String, String> saConnection;
2.주어진 키에 대한 정보를 가져오기
public Map<String, String> getWork(String key){
connRedis();
//특정 키에 대한 정보를 가져오는 메서드 호출
Map<String, String> rd = getInfo(key);
closeRedis();
return rd;
}
3.주어진 키에 대한 정보를 설정하기
public String setWork(String key, HashMap<String, String> hm){
connRedis();
//특정 키에 대한 정보를 설정하는 메서드 호출
String r = setInfo(key, hm);
closeRedis();
return r;
}
4.레디스 연결하기 : 객체 풀에서 연결 객체를 빌려와 Redis에 연결 합니다.
void connRedis(){
// Redis 연결 풀을 얻어옴
spool = CreateRedisStandalone.getInstance().getLedisPool();
try {
// 연결 풀에서 연결 객체를 빌려옴
saConnection = spool.borrowObject();
// 빌려온 연결 객체에서 Redis 명령을 수행하기 위한 변수 설정
command = saConnection.sync();
} catch (Exception e) {
예외 처리
return;
}
}
5.추상 메서드 작성 : 하위 클래스에서 구현되어야 하는 추상 메서드로, Redis에 정보를 설정하는 논리를 정의합니다.
abstract String setInfo(String key, HashMap<String, String> hm);
abstract Map<String, String> getInfo(String key);
6.Redis 연결 닫기 : 빌려온 연결 객체를 객체 풀에 반환하기 위함입니다.
void closeRedis(){
// 연결 객체를 연결 풀에 반환
spool.returnObject(saConnection);
}