Redis 타입 살펴보기

이진일·2026년 5월 7일
post-thumbnail

🛠️ Redis 데이터 타입 총 정리

Redis는 단순한 Key-Value 저장소를 넘어, 다양한 자료구조(Data Types)를 지원합니다. 각 자료형의 특징과 핵심 명령어를 정리해 보았습니다.


1. String (가장 기본)

Java의 Map<String, String>과 유사하며, 문자열뿐만 아니라 숫자, 이미지(바이트) 등도 저장 가능합니다. (최대 512MB)

  • 주요 명령어:
    🔻 SET / GET: 데이터 저장 및 조회

    SET user:email alex@example.com
    GET user:email
    • SET <key> <value>: key에 value 문자열 데이터를 저장
    • GET <key>: key에 저장된 문자열 반환

    🔻 INCR / DECR: 정수 데이터 1 증가/감소

    SET user:count 1
    INCR user:count
    DECR user:count
    • INCR key: key에 저장된 데이터를 1 증가
    • DECR key: key에 저장된 데이터를 1 감소

    🔻 MSET / MGET: 여러 키-값을 한 번에 처리

    MSET user:name alex user:email alex@example.com
    MGET user:name user:email
    • MSET key value [key value ...]: 여러 key에 value를 각각 저장
    • MGET key [key ...]: 주어진 모든 key에 해당하는 데이터 반환

2. List (순서가 있는 목록)

Java의 LinkedList와 비슷하며, 양끝에서의 추가/삭제가 매우 빠릅니다.

  • 주요 명령어:
    🔻 LPUSH / RPUSH / LPOP / RPOP

    LPUSH user:list alex
    RPUSH user:list chad
    LPOP user:list
    • LPUSH key value: 리스트의 앞쪽에 value를 저장
    • RPUSH key value: 리스트의 뒤쪽에 value를 저장
    • LPOP key: 리스트의 앞쪽에서 값을 반환 및 제거
    • RPOP key: 리스트의 뒤쪽에서 값을 반환 및 제거

    🔻 LLEN / LRANGE

    • LLEN key: key에 저장된 리스트의 길이를 반환
    • LRANGE key start end: 특정 범위의 원소들을 반환

3. Set (중복 없는 집합)

중복을 허용하지 않으며 집합 연산(교집합, 합집합 등)이 강력합니다.

  • 주요 명령어:
    🔻 SADD / SREM / SMEMBERS

    • SADD key value: 집합에 원소 추가
    • SREM key value: 집합에서 원소 제거
    • SISMEMBER key value: 집합에 value가 존재하는지 확인

    🔻 SINTER / SUNION / SINTERCARD

    • SINTER key1 key2: 두 집합의 교집합 원소 반환
    • SINTERCARD number key1 [key2 ...]: 교집합의 크기를 반환

4. Hash (필드-값 쌍의 묶음)

객체를 저장하기 가장 좋은 구조입니다. (예: 사용자 프로필, 장바구니)

  • 주요 명령어:
    🔻 HSET / HGET / HGETALL
    • HSET key field value: Hash의 field에 value를 저장
    • HGET key field: Hash에서 특정 field의 value를 반환
    • HGETALL key: 모든 field-value 쌍을 반환

5. Sorted Set (정렬된 집합)

각 원소에 Score(실수)를 부여해 정렬된 상태를 유지합니다.

  • 주요 명령어:
    🔻 ZADD / ZRANGE / ZRANK
    • ZADD key score member: 점수와 함께 멤버 추가
    • ZRANK key member: 오름차순 순위 반환
    • ZINCRBY key increment member: 멤버의 점수를 증가/감소

6. 공용 및 관리 명령어 🛠️

  • DEL key: Key와 데이터 제거
  • EXPIRE key seconds: 유효시간(TTL) 설정
  • KEYS *: 모든 Key 확인 (주의해서 사용)
  • FLUSHDB: 현재 DB의 모든 데이터 삭제

마무리하며
Redis는 "어떤 명령어를 쓰는가"보다 "어떤 자료구조에 데이터를 담는가"가 훨씬 중요합니다. 서비스의 목적에 맞는 타입을 선택하여 성능을 극대화해 보세요! 🚀

0개의 댓글