ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Redis List 형식과 명령어
    Data Base/Redis 2022. 10. 2. 22:27

    List 형식


    1) lpush명령어

    lpush key element [element.......]

    redis에 List형식으로 데이터를 저장하려면 lpush명령어를 사용하면 된다. 이 명령어는 key-value pair를 List의 첫 부분 부터 저장하게 한다.  이때의 첫부분의 기준은 왼쪽부터 시작한다. 또한 List에 이름을 지정 할 수도 있다. 

     

    2) lrange명령어

    위 예제에서 우리는 friends라는 key이름을 가지는 배열을 가지게 되었고 그 내부에는 tom이라는 element가 있다. get 명령어를 통해 friends를  확인해보려고 시도하면, 잘못된 명령어라는 메시지를 반환한다.

     

    lrange key이름 index번호 ~ index번호

     

    왜냐하면 get명령어는 오직 문자열 타입의 key-value pair를 대상으로만 작동하기 때문이다. 만약 우리가 List에 저장된 element들을 출력하고 싶다면 우리는 get명령어 대신에 lrange명령어를 사용해서 key이름이 firends를 호출해야 한다.

     

    key이름 뒤에 원하는 범위의 index를 적으면 되는 데 위 예제와 같이 0 -1라고 적으면 friends라는 key이름에 저장된  List의 모든 element를 가져오라는 의미가 된다.

     

    기존에 존재하는 List에 다른 element 넣기

    이미 존재하는 List에 왼쪽 즉 시작하는 부분 부터 또 다른 element를 넣고 싶다면 위 예제 처럼 tom을 List friends에 넣을 때와 동일하게 하면 된다.

     

    그리고 이제 우리는 해당 List에 element sally가 첫부분 부터 push되어 tom을 밀어내고 맨 앞에 것을 확인 할 수 있다.

    3) rpush 명령어

    또한 friend List에 뒷 부분 부터 element를 push 할 수도 있다. 즉 오른쪽 부분 부터 element를 추가 되는 것이다. rpush명령어를 사용해서 앞서 말한 작업을 수행할 수 있다. 

     

    lrange friends 0 -1

    위 명령어를 사용해서 확인하면 tom 뒤에 rpush 명령어로 넣은 element인 mike가 위치하고 있는 것을 확인 할 수 있다.

     


    List의 pop 명령어

    pop 명령어를 사용해서 List에서 element를 on and off할 수 있다. 즉 해당 명령어로 List 왼쪽 혹은 오른쪽에서 element를 꺼낼 수 있다.

     

    1) lpop 명령어

    lpop List이름

    위 명령어를 사용해서 List friends에 왼쪽 즉 시작 부분의 element를 꺼내 return 받을 수 있다. lpop 명령어를 실행하여 sally를 return 받고 lrange 명령어를 사용해서 friends List를 확인하면 List에서 "sally"라는 element가 사라진 것을 확인 할 수 있다.

     

    2) rpop 명령어

    rpop List이름

    위 명령어를 사용해서 List friends에 오른쪽 즉 뒷 부분의 element를 꺼내 return 받을 수 있다. rpop 명령어를 실행하여 mike element를 return 받고 lrange 명령어를 사용해서 friends List를 확인하면 List에서 "mike"라는 element가 사라진 것을 확인 할 수 있다.


    정리

    위 예제들에서 볼 수 있듯이 List는 Queue, Stack같은 것과 비교해 매우 유용한 타입중의 하나라는 것을 알 수 있다.  app을 통해 통신(messaging)이나 캐시를 하고 싶을때 

     

    "사용자로부터 나온 5개의 최근 메시지"같은 것들을 lpush 명령어를 사용  List 시작부분에 계속해서 push 해 쌓아 주고,  rpop 명령어를 사용해서 오래된 순으로 element를 제거하거나 반환 할 수 있다.

     

    이렇게 하면 해당 List에는 항상 가장 최신의 5개의 element만 존재하게 될 뿐만 아니라 가장 최신의 element순으로 List가 정렬되게 된다. 이것이 List type에 가장 최고의 활용 사례일 것이다.

     

    [출처- https://youtu.be/jgpVdJB2sKQ]

    'Data Base > Redis' 카테고리의 다른 글

    Redis Hash 형식과 명령어  (0) 2022.10.03
    Redis Set 형식과 명령어  (0) 2022.10.03
    Redis basic practice  (0) 2022.10.02

    댓글

Designed by Tistory.