ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Redis 2 - Redis의 자료구조 및 명령어 [ List편 ]
    Redis 2021. 4. 6. 19:39

    Redis 기본 자료구조 및 명령어 List 편

    명령어 [Key] [Value] 는 Key 값이 [Key], Value 값이 [Value]임을 나타냅니다.

    String

    1 : 1 방식의 Key - Value 형식

    기본 명령어 ⇒ get, set, del

    1. set [Key] [Value] → key에 value 저장
    2. get [Key] → key 값의 데이터 조회
    3. del [Key] → Key 삭제

    List

    Last, First에 삽입과 삭제가 가능한 자료구조로 Quick List를 사용

    기본 명령어 ⇒ lpush, rpush, lpop, rpop, lrange

    1. lpush [Key] [Value] → key의 List 처음에 [Value] 삽입
      시간 복잡도 ⇒ O(1)
    2. rpush [Key] [Value] → key의 List 마지막에 [Value] 삽입
      시간 복잡도 ⇒ O(1)
    3. lpop [Key] → key의 List 처음 데이터 삭제
      시간 복잡도 ⇒ O(1)
    4. rpop [Key] → key의 List 마지막 데이터 삭제
      시간 복잡도 ⇒ O(1)
    5. lrange key start end → List의 start ~ end까지의 데이터 반환 음수인 경우에는 마지막 값을 의미
      -1 → 마지막 값, -2 → 마지막 값의 전 값, -3 →...
    6. lpushx, rpushx [Key] [Value] → List가 이미 있는 경우에만 데이터 삽입
      시간 복잡도 ⇒ O(1)
    7. lset [Key] index [Value] → 리스트 index 원소의 값을 [Value] 값으로 변경
      시간 복잡도 ⇒ O(N)
    8. ltrim [Key] start end → 리스트의 start부터 end만큼 보존하고 나머진 삭제
      시간 복잡도 ⇒ O(N)

    - rpush로 testList에 R, E, D, I, S를 삽입
    마지막부터 삽입하기에 R, RE, RED, REDI, REDIS로 삽입됨을 확인할 수 있음

    - rpop으로 testList의 마지막 원소부터 제거
    S, I, D, E, R 순으로 제거됨을 확인할 수 있음

    - lpush로 testList에 R, E ,D ,I ,S를 삽입과 lpop으로 첫 원소부터 제거
    처음부터 삽입하기에 R, ER, DER, IDER, SIDER로 삽입됨과 S, I, D, E, R 순으로 제거됨을 확인할 수 있음

    - rpushx로 testList에 데이터 삽입
    testList가 존재하지 않을 때는 6을 삽입해도 데이터가 들어가지 않지만 testList에 데이터를 넣어놓은 후
    pushx를 할 때 데이터가 정상적으로 들어감을 확인할 수 있음

    - lset으로 testList의 3번째 원소 값을 X로 변경
    testList[2]인 D를 X로 변경됨을 확인할 수 있음

    - ltrim으로 testList의 3번째 원소부터 마지막까지만 보존하고 나머지는 삭제
    testList[2]인 D부터 마지막 원소인 S까지만 남아있음을 확인할 수 있음

    댓글

Designed by Tistory.