[Redis] Hash 데이터 운영 - (Jedis)

2024. 4. 15. 15:53기술 창고/DataBase

728x90
SMALL

Redis의 Hash는 필드와 값으로 이루어진 데이터 구조입니다.

데이터들을 그룹화하여 관리할 수 있습니다.

(예 : Java HashMap)

 

주요 명령어

- HSET

- HGET

- HMGET

- HGETALL

- HDEL

- HINCRBY

 

 


Command 실습

HSET

hset은 hash 데이터를 생성하고 넣어주는 명령어입니다.

hset으로 데이터를 생성하고 넣어줄 때 한 번에 다중 필드와 값을 넣어줄 수 있습니다.

hash  또한 필드와 값을 가진 키 값이 중복을 가질 수 없습니다.

- 형식 : hset {hash 키 값} {필드 명} {데이터 값} {필드 명2} {데이터 값2} ...

 

 

 

HGET

hget은 hash의 단일 필드 데이터를 가지고 와서 출력하는 명령어입니다.

- 형식 : hget {hash 키 값} {필드 명}

 

 

 

HMGET

hmget은 hash의 다중 필드 데이터들을 가지고 와서 출력하는 명령어입니다.

- 형식 : hmget {hash 키 값} {필드 명 1} {필드 명 2} ...

 

 

 

HDEL

hdel은 hash의 특정 필드 데이터를 삭제하는 명령어입니다.

- 형식 : hdel {hash 키 값} {필드 명}

 

 

 

HGETALL

hgetall은 hash의 모든 필드 데이터들을 출력하는 명령어입니다.

- 형식 : hgetall {hash 키 값}

 

 

 

HINCRBY

hincrby는 hash에서 원자적 데이터 증가를 수행하는 명령어입니다.

만약 증가를 수행하는 필드가 존재하지 않을 경우에도 자동적으로 생성하여 초기화시켜줍니다.

- 형식 : hincrby {hash 키 값} {증가 필드 명} {증가 수량}

 

 

 


Spring Boot 사전 연동 필요

https://jindevelopetravel0919.tistory.com/395

 

[Redis] Spring Boot 와 Redis 연동 설정 - (Jedis)

Spring Boot 환경에서 Redis 를 사용하기 위한 방법 중 하나인 Jedis 설정 과정과 연동 과정에 대해 정리해보겠습니다. 또한 제가 진행하고자 하는 Spring Boot는 gradle 환경입니다. (1) Dependency 추가 Build.gra

jindevelopetravel0919.tistory.com

 

Spring Boot 활용 실습

// Redis - Hash
public void jedisOfHash() {
    try (JedisPool pool = jedisPoolSetting()) {
        try (Jedis jedis = pool.getResource()) {
            // [ HSET ]
            // HashSet에 단일 데이터를 넣을 경우, 바로 필드값 + value를 넣는다
            jedis.hset("users:2:info", "name", "sehun");

            // HashSet에는 다중의 데이터나 다양한 데이터 형식을 넣을 수 있으므로 곧바로 HashMap을 넣을 수 있다.
            HashMap<String, String> map = new HashMap<>();
            map.put("email", "sehun@naver.com");
            map.put("phone", "010-2222-5555");
            jedis.hset("users:2:info", map);

            // [ HGET ]
            // hget을 통한 특정 필드의 값을 조회
            System.out.println(jedis.hget("users:2:info", "name"));
            System.out.println(jedis.hget("users:2:info", "phone"));

            // [ HGETALL ]
            // hgetall을 통한 키에 속한 전체 필드 데이터 조회
            System.out.println(jedis.hgetAll("users:2:info"));

            // [ HDEL ]
            // hdel을 통한 특정 필드 삭제
            jedis.hdel("users:2:info", "phone");
            System.out.println(jedis.hget("users:2:info", "phone"));

            // [ HINCRBY ]
            // hincrBy를 통한 특정 필드 값 증가
            jedis.hincrBy("users:2:info", "visits", 1);
            System.out.println(jedis.hget("users:2:info", "visits"));
        }
    }
}

 

결과

 

728x90
반응형
LIST