Redis 타입 살펴보기

1 minute read

개요

레디스(Redis)는 인메모리 데이터 구조 저장소로서, 다양한 데이터 타입을 지원하여 각각의 특징에 맞는 데이터 관리 및 처리를 가능하게 합니다. 레디스가 지원하는 주요 데이터 타입들에 대해 알아보겠습니다.

Redis란?

빠른 속도와 간편한 사용성을 제공하는 키-값 기반의 NoSQL 데이터베이스로, 주로 메모리 내에서 데이터를 저장하고 접근하는 용도로 활용됩니다.

타입

Strings

  • 단일 값을 저장하는 가장 기본적인 데이터 타입입니다.
  • 설정 값, 캐시 데이터 등 간단한 문자열 데이터를 저장할 때 사용됩니다.
    SET mykey "Hello, Redis!"
    GET mykey
    "Hello, Redis!"
    

Lists

  • 순서가 있는 문자열 요소들을 저장하며, 리스트의 양 끝에서 요소를 추가하거나 제거할 수 있습니다.
  • 큐(Queue)나 최근 작업 이력 등을 저장하고 관리할 때 사용됩니다.
    LPUSH mylist "World"
    LPUSH mylist "Hello"
    LRANGE mylist 0 -1
    1) "Hello"
    2) "World"
    

Sets

  • 중복을 허용하지 않는 고유한 문자열 집합을 관리하며, 집합 연산을 지원합니다.
  • 고유한 아이템 목록을 관리하거나, 특정 요소의 존재 여부를 빠르게 확인할 때 사용됩니다.
    SADD myset "Hello"
    SADD myset "World"
    SMEMBERS myset
    1) "Hello"
    2) "World"
    

Hashes

  • 필드와 값의 쌍을 저장하는 데이터 구조로, 객체를 해시 형태로 관리할 때 유용합니다.
  • 사용자 정보, 제품 정보 등의 객체 데이터를 구조화하여 저장할 때 사용됩니다.
    HSET myhash user_id "12345"
    HSET myhash username "son"
    HGETALL myhash
    1) "user_id"
    2) "12345"
    3) "username"
    4) "son"
    

Sorted Sets

  • 각 요소에 점수를 부여하고 정렬하여 저장하는 데이터 타입으로, 순위 기반의 데이터를 관리할 때 유용합니다.
  • 리더보드, 순위 정보 등을 저장하고 관리할 때 사용됩니다.
    ZADD leaderboard 100 "player1"
    ZADD leaderboard 90 "player2"
    ZRANGE leaderboard 0 -1 WITHSCORES
    1) "player2"
    2) "90"
    3) "player1"
    4) "100"
    

Bitmaps

  • 비트 연산을 지원하는 데이터 타입으로, 특정 위치의 비트를 설정하거나 확인할 수 있습니다.
  • 통계 데이터, 온라인 상태 등을 비트로 표현하고 관리할 때 사용됩니다.
    SETBIT mybitmap 0 1
    GETBIT mybitmap 0
    (integer) 1
    

HyperLogLogs

  • 고유한 요소의 개수를 근사치로 계산하는 확률적 자료구조입니다.
  • 고유 방문자 수, 독특한 사용자 수 등을 추정할 때 사용됩니다.
    PFADD unique_visitors "user1"
    PFADD unique_visitors "user2"
    PFCOUNT unique_visitors
    (integer) 2
    

Streams

  • 시간 순서대로 정렬된 메시지 스트림을 저장하고 처리하는 데이터 타입입니다.
  • 실시간 데이터 스트리밍, 이벤트 로깅 등을 처리할 때 사용됩니다.
    XADD mystream * sensor_id 1001 temperature 24.5
    XRANGE mystream - +
    1) "1609517473707-0"
     1) "sensor_id"
     2) "1001"
     3) "temperature"
     4) "24.5"
    

Geospatial Indexes

  • 위치 정보를 저장하고 지리적 연산을 지원하는 데이터 타입입니다.
  • 위치 기반 서비스, 지도 애플리케이션 등에서 위치 검색 및 분석에 사용됩니다.
    GEOADD cities 126.9780 37.5665 "Seoul"     # 서울, 대한민국
    GEOADD cities 139.6917 35.6895 "Tokyo"     # 도쿄, 일본
    GEOADD cities 116.4074 39.9042 "Beijing"   # 베이징, 중국
    GEORADIUS cities 135 35 1000 km
    1) "Tokyo"
    2) "Seoul"
    

Categories:

Updated: