Redis를 배워보자! -(2)

NTbell·2025년 2월 1일

Redis List 자료구조 📜

Redis에서 List는 Deque(Double-ended Queue) 구조

  • Deque(덱): 양쪽(앞, 뒤)에서 데이터를 삽입/삭제할 수 있는 자료구조 유사함!!
  • FIFO(First-In, First-Out)와 LIFO(Last-In, First-Out) 동작 모두 가능
  • 활용 예: 메시지 큐, 작업 대기열, 최근 방문 기록 저장 등

List 주요 명령어

데이터 삽입 및 삭제

  • LPUSH key value왼쪽 끝에 데이터 삽입
  • RPUSH key value오른쪽 끝에 데이터 삽입
  • LPOP key왼쪽 끝에서 데이터 꺼내기
  • RPOP key오른쪽 끝에서 데이터 꺼내기

List 조회

  • LRANGE key start stop → 특정 범위의 데이터 조회
    • LRANGE studygroup 0 0첫 번째 값 조회
    • LRANGE studygroup -1 -1마지막 값 조회
    • LRANGE studygroup 0 -1전체 리스트 조회
    • LRANGE studygroup -2 -1마지막 두 개 값 조회
  • LLEN key → 리스트 데이터 개수 조회
  • EXPIRE key seconds → TTL 적용하여 자동 삭제 설정
  • TTL key → TTL(남은 만료 시간) 확인

List 데이터 추가 및 조회 예제

LPUSH studygroup user1
LPUSH studygroup user2  # 왼쪽 삽입 → studygroup: [user2, user1]
RPUSH studygroup user3  # 오른쪽 삽입 → studygroup: [user2, user1, user3]
LRANGE studygroup 0 -1  # 전체 리스트 조회

List 데이터 제거 예제

RPOP studygroup  # → user3 제거 (오른쪽)
LPOP studygroup  # → user2 제거 (왼쪽)

List자료구조-Redis 활용: 최근 방문한 페이지, 최근 조회한 상품 목록

가정을 해보자 당신은 최근에 조회한 상품들이 몇가지 있다 이를 다음과 같이 표현해보면

RPUSH product outer1
RPUSH product outer2
RPUSH product outer3
RPUSH product outer2

이렇게 표현할 수있다 product : outher1, outher2, outher3, outher2 이렇게 표현됨
list는 중복을 허용 하기에 위처럼 값이 중복해서 들어감

  • 최근 본 상품 3개만 보여주려면:
    LRANGE product -3 -1
  • 주의할 점: List 자료구조는 중복 제거가 안됨 → 같은 값이 여러 번 들어갈 수 있음
  • 중복을 제거하고 순서를 보장하려면 ZSET(Sorted Set) 사용
    • 페이지 방문 목록: 순서가 중요하므로 중복 허용 가능
    • 상품 목록: 중복이 제거되는 것이 더 적절함 (추가적인 보완을 위해서 중복제거가 필요)
profile
어떤 개발자가 되고싶나

0개의 댓글