Redis 배워보자! - (3)

NTbell·2025년 2월 2일

Redis SET 자료구조 🔥

SET 자료구조란?

  • 중복이 없는(unique) 데이터 저장
  • 순서가 없는 데이터 구조
  • 빠른 조회 및 집합 연산에 강점이 있음

SET 주요 명령어

데이터 추가 및 제거

  • SADD key valueSET에 값 추가 (중복 불가)
  • SREM key valueSET에서 특정 요소 제거

SET 조회 및 확인

  • SMEMBERS keySET의 모든 값 조회
  • SCARD keySET 요소 개수 조회
  • SISMEMBER key value특정 요소가 존재하는지 확인 (1: 존재, 0: 없음)

SET 사용 예제

SET에 값 추가

SADD memberlist member1
SADD memberlist member1  # 중복 추가 시 무시됨
SADD memberlist member2

SET 조회

SMEMBERS memberlist  # 저장된 모든 멤버 조회

SET 요소 개수 조회

SCARD memberlist  # 저장된 요소 개수 조회

SET에서 특정 멤버 제거

SREM memberlist member2

특정 요소가 SET 안에 존재하는지 확인

SISMEMBER memberlist member1  # 존재하면 1, 없으면 0 반환

Redis SET 활용: 좋아요 ❤️ 및 방문자 수 집계

문제점 (String 자료구조 사용 시)

  • 일반적인 String 자료구조를 사용하면 같은 유저가 계속 좋아요를 누를 수 있어 집계 오류 발생
  • 기존 유저가 무한정 좋아요를 누르면, 부정확한 데이터 집계가 됨

SET을 활용한 해결 방법 (중복 제거)

SADD like:posting:1 member1  # member1이 게시물 1에 좋아요
SADD like:posting:1 member2  # member2가 좋아요
SADD like:posting:1 member1  # 같은 member1이 다시 누르면 무시됨 (중복 제거)

좋아요 개수 조회

SCARD like:posting:1  # 좋아요를 누른 유저의 수

특정 유저가 좋아요를 눌렀는지 확인

SISMEMBER like:posting:1 member1  # 좋아요를 눌렀으면 1, 아니면 0 반환
profile
어떤 개발자가 되고싶나

0개의 댓글