ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Redis 데이터 구조
    Redis 2024. 2. 20. 16:26

     

    String

    String 타입의 데이터 구조, 텍스트, 직렬화된 객체 등을 저장하는 용도로 자주 사용됨.

     

    SET

    Time complexity: O(1)

    Description: 지정된 key의 저장된 문자열을 저장

    SET key value

     

    GET

    Time complexity: O(1)

    Description: 지정된 key의 저장된 문자열을 조회

    GET key

     

    SET, GET 실습

     

     

     

     

    List

    데이터 삽입 순서에 따라 정렬된 문자열 컬렉션의 형태

     

    LRANGE

    Time complexity: O(S + N) - S는 (HEAD or TAIL)에서의 distance, N은 지정된 요소 수

    Description: List에서 지정된 범위의 요소를 반환

    LRANGE key start stop

     

    LPUSH

    Time complexity: O(1)

    Description: List의 Head에 지정된 요소를 추가

    -> 000000

    LPUSH key element

     

    RPUSH

    Time complexity: O(1)

    Description: List의 Tail에 지정된 요소를 추가

    -> 000000

    RPUSH key element

     

    LRANGE, LPUSH, RPUSH 실습

     

    LPOP

    Time complexity: O(N) - N은 반환된 요소의 수

    Description: List의 첫 번째 요소를 제거하고 반환

    LPOP key [count]

     

    RPOP

    Time complexity: O(N) - N은 반환된 요소의 수

    Description: List의 마지막 요소를 제거하고 반환

    RPOP key [count]

     

    LPOP, RPOP 실습

     

    위 형태들을 잘 활용하면 레디스의 리스트를 스택과 큐의 형태로 활용할 수 있다.

     

    LLEN

    Time complexity: O(1)

    Description: List에 저장된 요소 수를 반환

    LLEN key

     

    LPOS

    Time complexity: O(N) - N은 목록의 요소 수

    Description: List에서 일치하는 요소를 찾고 인덱스를 반환

    LPOS key element

     

    LLEN, LPOS 실습

    일치하는 요소가 없으면 (nil)라는 형태로 반환함

     

     

     

     

    Set

    순서가 지정되지 않은 문자열 컬렉션의 형태, 중복 요소가 허용되지 않음

     

    SMEMBERS

    Time complexity: O(N) - N은 저장된 요소의 수

    Description: Set에 저장된 모든 요소를 반환

    SMEMBERS key

     

    SADD

    Time complexity: O(1)

    Description: Set에 멤버를 추가

    SADD key member

     

    SMEMBERS, SADD 실습

    set은 중복을 허용하지 않으므로, coupon_1을 다시 추가하려고 시도했을 때 0을 반환함

     

    SMEMBERS도 시간 복잡도가 O(N)이므로, Set의 크기가 커지면 오래걸리는 커맨드가 될 수 있으니 주의.

     

    SISMEMBER 

    Time complexity: O(1)

    Description: Set에 멤버가 포함되어 있는지 확인

    SISMEMBER key member

     

    SCARD

    Time complexity: O(1)

    Description: Set에 저장된 요소 수를 반환

    SCARD key

     

    SISMEMBER, SCARD 실습

    SISMEMBER에서 멤버가 포함되어 있으면 1, 아니면 0 반환

     

    SREM

    Time complexity: O(N) - N은 삭제할 요소의 수

    Description: Set에 저장된 요소를 제거

    SREM key member

     

    SREM 실습

     

     

     

     

    Sorted Set

    지정한 스코어에 따라서 순서가 지정되는 문자열 컬렉션의 형태. 중복 요소가 허용되지 않음.

     

    ZRANGE

    Time complexity: O(log(N) + M) - N은 정렬된 집합의 요소 수, M은 반환된 요소 수Description: Sorted Set에 저장된 범위 내(순위, 스코어) 요소를 반환

    ZRANGE key start stop

     

    ZADD

    Time complexity: O(log(N)) - N은 정렬된 집합의 요소 수

    Description: member가 score에 의해 정렬 및 저장. 동일한 score인 경우 사전 순 정렬

     

    ZRANGE, ZADD 실습

    ZRANGE를 사용했을 때, 오름차순으로 정렬되어 출력된 것을 볼 수 있다.

     

    ZCARD

    Time complexity: O(1)

    Description: 해당하는 key의 요소 수를 반환

    ZCARD key

     

    ZPOPMIN

    Time complexity: O(log(N) * M) - N은 정렬된 집합의 요소 수, M은 POP 된 요소 수

    Description: 점수가 낮은 순으로 멤버를 제거하고 반환

    ZPOPMIN key [count]

     

    ZPOPMAX

    Time complexity: O(log(N) * M) - N은 정렬된 집합의 요소 수, M은 POP 된 요소 수

    Description: 점수가 높은 순으로 멤버를 제거하고 반환

    ZPOPMAX key [count]

     

    ZCARD, ZPOPMIN, ZPOPMAX 실습

     

     

     

    더 자세한 명령어는 아래 공식 홈페이지 상단의 COMMANDS 참고하기

     

    Redis

    Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker

    redis.io

     

     

     

     

     

Designed by Tistory.