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

2024. 4. 15. 14:04기술 창고/DataBase

728x90
SMALL

Redis의 String 타입의 데이터는 가장 기본적인 데이터 타입으로써, text, byte 형식의 데이터를 저장합니다.

또한, 증가 (Increment) / 감소 (Decrement)에 대한 연산을 지원해줍니다.

 

주요 명령어

- SET

- SETNX

- GET

- MGET

- INCR

- INCRBY

- DECR

- DECRBY

 

 


Command 실습

SET

set은 String 타입의 데이터를 넣어줄 때 사용되는 명령어입니다.

만약 기존에 존재하던 키 값이고 데이터가 존재할 경우 기존 데이터 값을 지우고 새롭게 넣어줍니다.

- 형식 : set {키} {데이터 값}

 

 

 

SETNX

setnx 는 set과 마찬가지로 String 타입의 데이터를 넣어주지만 기존에 존재하는 키 값에 setnx를 적용하여 데이터를 넣어주려고 할 경우, 이를 방지해주는 특성을 가지고 있습니다.

- 형식 : setnx {키} {데이터 값}

 

위의 이미지처럼 기존에 존재하는 키 값인 users:100:email에 setnx를 통해 데이터를 넣으려고 했더니 0 으로 결과값이 나오면서 반영이 안된 것을 알 수 있습니다.

그러므로 새로운 키 값으로 setnx를 처리해주어야 합니다.

 

 

GET

get은 String 타입의 데이터를 key 값을 기준으로 조회하는 명령어입니다.

- 형식 : get {키}

 

 

 

MGET

mget은 String 타입의 여러 데이터들을 key 값을 기준으로 다중 조회하는 명령어입니다.

- 형식 : mget {키} {키2} ...

 

 

 

 

INCR

incr는 원자적 데이터 증가 명령어입니다.

키 값이나 데이터 존재 유무 상관없이 키를 생성하고 데이터를 원자적으로 증가시켜줍니다.

- 형식 : incr {키}

 

counter, datamount 키 값 존재 확인

 

 

INCRBY

incrby는 기존에 incr처럼 1씩 증가하는 것이 아닌, 대량의 수를 증가시키는 명령어입니다.

- 형식 : incrby {키} {증가수}

 

 

 

DECR

decr은 반대로 원자적 데이터를 감소시키는 명령어입니다.

키 값이나 데이터 존재 유무 상관없이 키를 생성하고 데이터를 원자적으로 감소시켜줍니다.

- 형식 : decr {키}

 

기존 counter 키 값 감소 및 test 키 생성 확인

 

 

DECRBY

decrby는 기존에 decr처럼 1씩 감소시키는 것이 아닌, 대량의 수를 감소시키는 명령어입니다.

- 형식 : decrby {키} {감소량}

 

 

 

 


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 - String
public void jedisOfString() {
    try (JedisPool pool = jedisPoolSetting()) {
        try (Jedis jedis = pool.getResource()) {
            // [ SET ]
            // set을 통해 String 타입의 일반 문자열 데이터를 저장
            jedis.set("users:234:email", "sehun@naver.com");
            jedis.set("users:234:name", "sehun");
            jedis.set("users:234:age", "28");

            // [ GET ]
            // get을 통해 String 타입의 데이터를 조회
            System.out.println(jedis.get("users:234:email"));

            // [ MGET ]
            // mget을 통한 다수의 특정 String 데이터를 조회
            List<String> mgetData = jedis.mget("users:234:email", "users:234:name", "users:234:age");
            mgetData.forEach(System.out::println);

            // [ INCR ]
            // incr를 통한 특정 단일 데이터 증량 (없다면 바로 데이터가 생성되면서 1로 초기화)
            long counter = jedis.incr("counter");
            System.out.println(counter);

            // [ INCRBY ]
            // incrBy를 통한 특정 단일 데이터의 1씩 증가가 아닌 많은 수를 증가
            counter = jedis.incrBy("counter", 10L);
            System.out.println(counter);

            // [ DECR ]
            // decr를 통한 특정 단일 데이터 1 감소
            counter = jedis.decr("counter");
            System.out.println(counter);

            // [ DECRBY ] 
            // decrBy를 통한 특정 단일 데이터 많은 수 감소
            counter = jedis.decrBy("counter", 10L);
            System.out.println(counter);

        }
    }
}

 

 

결과

 

728x90
반응형
LIST