[Redis] Redis 설정3:Redis실행

Redis

목록 보기
4/5
post-thumbnail

3.RedisControler

목적 : Redis에서 실행되는 작업을 추상화한 클래스.

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);
}
profile
숲을 보고 나무도 보자.

0개의 댓글