IT recording...

[Redis] Redis의 자료구조, 명령어 - (2) 본문

Spring

[Redis] Redis의 자료구조, 명령어 - (2)

I-one 2022. 4. 1. 15:56

[더 편하게 보고 싶다면 -> 원본 링크]

https://adorable-aspen-d23.notion.site/Spring-Spring-Boot-Redis-6ecda14328a34ec1a0e3dc2990a51277

 

[Spring] Spring Boot + Redis 연결하기

1. Redis란?

adorable-aspen-d23.notion.site

 

4. Redis의 자료구조, 명령어

  • 완전 도움 된 글

[Redis] Redis의 기본 명령어

[Redis] Redis 자료구조 알아보기

  • 아래에서 소개하는 애들은 cli에서 사용하는 명령어들이다.
    • spring 에서는 비슷하게 생긴 거 골라서 쓰면 된다.
    ex)
    //cli에서
    **zrevrange** keyabc 0 8
    
    //spring에서
    Set<String> redisCrudTemplate = zSetOps.**reverseRange**("keyabc", 0, 8);
    

4-1. String

//KEY -> 자신이 설정할 키 값

1. get KEY //KEY에 해당하는 value를 가져온다.
2. set KEY value //KEY에 value를 저장한다.
3. del KEY //KEY를 삭제한다.

4-2. List

1. lpush KEY value //List의 index 0 쪽으로 데이터를 삽입한다. (왼쪽 삽입)
2. rpush KEY value //List의 index last 쪽으로 데이터를 삽입한다. (오른쪽 삽입)
3. lrange KEY start end //start부터 end까지 데이터를 반환한다. (lrange KEY 0 5 면 0,1,2,3,4 반환)
4. lpop KEY //index 0쪽의 데이터를 pop 
5. rpop KEY //index last쪽의 데이터를 pop
6. llen KEY //List의 길이 반환(데이터 갯수)

4-3. Set

  • 중복되지 않는 값을 데이터로 갖는다.
  • value를 member라고 부른다. (굳이..)
  • 좋아요를 누른 사람 수, 특정 상품을 본 사람 수 등을 나타내는 데 사용된다.
1. sadd KEY member //Set에 추가
2. srem KEY //삭제
3. smembers KEY //모든 member(value)를 조회한다.
4. scard KEY //Set에 속해있는 member의 갯수를 조회한다.
5. spop //Set에서 무작위로 member를 가져온다.

4-4. Hash

  • 내부에 또 다른 Key-Value로 이루어진 자료구조
1. hset KEY field value //field-value 추가
2. hget KEY field //field로 value 조회한다.
3. hdel KEY field //제거
4. hlen KEY //field 갯수를 반환한다.
5. hgetAll KEY // field와 value를 모두 반환한다.
6. hkeys key //모든 field를 반환한다.
7. hvals KEY //모든 value를 반환한다.

4-5. Sorted Set

  • 중복되지 않는 값을 데이터로 갖는다.
  • 가중치(score)를 가지고 있고, 이걸로 자동 정렬 해준다.
    • score가 같으면 value로 정렬된다. (동점 처리가 안된다. → 따로 처리해줘야함)
  • value는 중복되지 않으며, score는 중복될 수 있다.
  • 랭킹 등에 사용된다.
1. zadd KEY score member //추가
2. zcard KEY //Sorted Set에 속해있는 member의 갯수를 조회한다.
3. zrange KEY start stop // start부터 stop까지의 랭킹을 조회한다. (내림차순) (zrange KEY 0 5면 0,1,2,3,4,5 조회)
4. zrevrange KEY start stop // 오름차순 랭킹 조회 (zrevrange KEY 0 5 면 0,1,2,3,4 조회)
5. zrangebyscore KEY min max //min<= score <= max 인 member 조회
등

Commands

공식문서에서 원하는 자료구조를 선택하면 존재하는 명령어들을 확인할 수 있다.

Redis 자료 구조 - ZSet (Sorted Set)

zSet의 명령어들이 잘 정리되어 있는 곳

4-6. expire

  • 지정한 시간 이후 KEY를 자동으로 삭제하는 명령어
  • KEY-value쌍에 Time to Live를 설정할 수 있다.
  • 주의) expire 명령 사용 이후 set, getset 명령을 사용하면 expire명령이 삭제된다.
    • 따라서 다시 설정해야 함
    • (단, incr, lpush, sadd, zadd, hset과 같은 명령어는 그대로 유지됨)
1. expire KEY member second //KEY에 만료 시간(ttl)을 설정한다.
2. ttl KEY //남은 ttl을 초단위로 확인한다.

원래 player라는 sorted set이 존재했는데 10초 만료시간 줘서 사라진 모습

4. Redis의 자료구조, 명령어

  • 완전 도움 된 글

[Redis] Redis의 기본 명령어

[Redis] Redis 자료구조 알아보기

  • 아래에서 소개하는 애들은 cli에서 사용하는 명령어들이다.
    • spring 에서는 비슷하게 생긴 거 골라서 쓰면 된다.
    ex)
    //cli에서
    **zrevrange** keyabc 0 8
    
    //spring에서
    Set<String> redisCrudTemplate = zSetOps.**reverseRange**("keyabc", 0, 8);
    

4-1. String

//KEY -> 자신이 설정할 키 값

1. get KEY //KEY에 해당하는 value를 가져온다.
2. set KEY value //KEY에 value를 저장한다.
3. del KEY //KEY를 삭제한다.

4-2. List

1. lpush KEY value //List의 index 0 쪽으로 데이터를 삽입한다. (왼쪽 삽입)
2. rpush KEY value //List의 index last 쪽으로 데이터를 삽입한다. (오른쪽 삽입)
3. lrange KEY start end //start부터 end까지 데이터를 반환한다. (lrange KEY 0 5 면 0,1,2,3,4 반환)
4. lpop KEY //index 0쪽의 데이터를 pop 
5. rpop KEY //index last쪽의 데이터를 pop
6. llen KEY //List의 길이 반환(데이터 갯수)

4-3. Set

  • 중복되지 않는 값을 데이터로 갖는다.
  • value를 member라고 부른다. (굳이..)
  • 좋아요를 누른 사람 수, 특정 상품을 본 사람 수 등을 나타내는 데 사용된다.
1. sadd KEY member //Set에 추가
2. srem KEY //삭제
3. smembers KEY //모든 member(value)를 조회한다.
4. scard KEY //Set에 속해있는 member의 갯수를 조회한다.
5. spop //Set에서 무작위로 member를 가져온다.

4-4. Hash

  • 내부에 또 다른 Key-Value로 이루어진 자료구조
1. hset KEY field value //field-value 추가
2. hget KEY field //field로 value 조회한다.
3. hdel KEY field //제거
4. hlen KEY //field 갯수를 반환한다.
5. hgetAll KEY // field와 value를 모두 반환한다.
6. hkeys key //모든 field를 반환한다.
7. hvals KEY //모든 value를 반환한다.

4-5. Sorted Set

  • 중복되지 않는 값을 데이터로 갖는다.
  • 가중치(score)를 가지고 있고, 이걸로 자동 정렬 해준다.
    • score가 같으면 value로 정렬된다. (동점 처리가 안된다. → 따로 처리해줘야함)
  • value는 중복되지 않으며, score는 중복될 수 있다.
  • 랭킹 등에 사용된다.
1. zadd KEY score member //추가
2. zcard KEY //Sorted Set에 속해있는 member의 갯수를 조회한다.
3. zrange KEY start stop // start부터 stop까지의 랭킹을 조회한다. (내림차순) (zrange KEY 0 5면 0,1,2,3,4,5 조회)
4. zrevrange KEY start stop // 오름차순 랭킹 조회 (zrevrange KEY 0 5 면 0,1,2,3,4 조회)
5. zrangebyscore KEY min max //min<= score <= max 인 member 조회
등

Commands

공식문서에서 원하는 자료구조를 선택하면 존재하는 명령어들을 확인할 수 있다.

Redis 자료 구조 - ZSet (Sorted Set)

zSet의 명령어들이 잘 정리되어 있는 곳

4-6. expire

  • 지정한 시간 이후 KEY를 자동으로 삭제하는 명령어
  • KEY-value쌍에 Time to Live를 설정할 수 있다.
  • 주의) expire 명령 사용 이후 set, getset 명령을 사용하면 expire명령이 삭제된다.
    • 따라서 다시 설정해야 함
    • (단, incr, lpush, sadd, zadd, hset과 같은 명령어는 그대로 유지됨)
1. expire KEY member second //KEY에 만료 시간(ttl)을 설정한다.
2. ttl KEY //남은 ttl을 초단위로 확인한다.

원래 player라는 sorted set이 존재했는데 10초 만료시간 줘서 사라진 모습

'Spring' 카테고리의 다른 글

[Redis] Spring + Redis 간단한 API 작성 - (3)  (0) 2022.04.01
[Redis] Redis란? - (1)  (0) 2022.04.01
[스프링 JPA1] 3. 컨트롤러  (0) 2022.02.15
[스프링 JPA1] 2. 도메인 개발  (0) 2022.02.15
[Spring] 개발 중 마주한 오류들 - 1  (0) 2022.02.15
Comments