liminfo

Redis Reference

Redis 인메모리 데이터베이스 레퍼런스

27개 결과

Redis Reference 소개

Redis 명령어 레퍼런스는 문자열, 리스트, 해시, 셋, 정렬셋, 클러스터 등 6가지 데이터 타입 카테고리에 걸친 모든 주요 Redis 명령어를 검색 가능한 형태로 정리한 치트 시트입니다. 각 항목에는 정확한 명령어 구문, 설명, 실제 사용 예제가 포함되어 있어 캐시 레이어, 메시지 큐, 리더보드, 세션 스토어를 구축할 때 필요한 명령어를 빠르게 찾을 수 있습니다.

이 레퍼런스는 Redis를 매일 사용하는 백엔드 개발자, DevOps 엔지니어, 아키텍트를 위해 설계되었습니다. 문자열 저장을 위한 SET/GET, MSET/MGET, 큐와 스택 패턴을 위한 LPUSH/RPUSH/BLPOP, 해시를 이용한 객체 모델링을 위한 HSET/HGETALL, 집합 연산을 위한 SADD/SUNION/SINTER, 정렬셋 리더보드를 위한 ZADD/ZRANGE/ZRANK까지 일상적인 명령어를 모두 다룹니다.

항목은 데이터 타입 카테고리별로 구성되어 있어 사용 사례에 맞는 명령어로 빠르게 이동할 수 있습니다. SETNX 분산 락 패턴, INCR/DECR 원자적 카운터, BLPOP 블로킹 큐, HINCRBY 필드 증가, ZINCRBY를 이용한 점수 조작, 클러스터 노드 관리까지 단일 인스턴스와 수평 확장 Redis 환경 모두를 아우르는 레퍼런스입니다.

주요 기능

  • Redis 문자열 명령어 완전 커버: SET, GET, MSET/MGET, INCR/DECR, EX/NX 옵션을 포함한 SETNX
  • 큐와 스택 패턴을 위한 리스트 명령어: LPUSH, RPUSH, LPOP, RPOP, LRANGE, LLEN, BLPOP
  • 객체 저장을 위한 해시 명령어: HSET, HGET, HGETALL, HMSET/HMGET, HINCRBY
  • 합집합·교집합·차집합을 포함한 셋 명령어: SADD, SMEMBERS, SISMEMBER, SUNION, SINTER, SDIFF
  • 정렬셋 리더보드 명령어: ZADD, ZRANGE, ZREVRANGE, ZINCRBY, WITHSCORES 예제 포함 ZRANK
  • Redis 클러스터 관리: CLUSTER INFO, CLUSTER NODES, 레플리카 수 설정을 포함한 redis-cli --cluster create
  • 분산 락, 세션 만료, 원자적 카운터, 블로킹 큐에 대한 실제 사용 예제
  • 문자열·리스트·해시·셋·정렬셋·클러스터 명령어로 바로 이동할 수 있는 카테고리 기반 탐색

자주 묻는 질문

이 레퍼런스가 다루는 Redis 데이터 타입은 무엇인가요?

일상적인 Redis 개발에서 사용하는 6가지 주요 카테고리를 다룹니다: 문자열(SET, GET, MSET, INCR), 리스트(LPUSH, RPUSH, BLPOP), 해시(HSET, HGETALL, HMSET), 셋(SADD, SUNION, SINTER), 정렬셋(ZADD, ZRANGE, ZRANK), 클러스터 명령어(CLUSTER INFO, redis-cli --cluster create).

Redis로 분산 락을 어떻게 구현하나요?

SETNX key value와 만료 시간을 조합하여 분산 락을 구현합니다. 현대적으로 권장되는 방식은 SET key value NX EX 30으로, 키가 없을 때만 원자적으로 설정(NX)하고 30초 만료(EX)를 적용합니다. 락 보유자가 비정상 종료되더라도 데드락이 발생하지 않습니다.

LPUSH와 RPUSH의 차이점은 무엇인가요?

LPUSH는 리스트의 앞쪽(왼쪽)에 요소를 추가하고, RPUSH는 뒤쪽(오른쪽)에 추가합니다. 선입선출(FIFO) 큐를 구현하려면 RPUSH로 삽입하고 LPOP으로 꺼냅니다. 후입선출(LIFO) 스택은 같은 쪽에서 LPUSH와 LPOP을 사용합니다.

Redis에서 String 대신 Hash를 사용해야 하는 경우는 언제인가요?

이름, 이메일, 나이 필드를 가진 사용자 프로필처럼 하나의 엔티티에 여러 필드를 저장해야 할 때 Hash(HSET, HGETALL)를 사용합니다. 각 필드를 별도의 String 키로 저장하는 것보다 메모리 효율이 높고, HSET으로 전체 객체를 덮어쓰지 않고 특정 필드만 업데이트할 수 있습니다.

Redis에서 ZADD와 SADD는 어떻게 다른가요?

SADD는 순서가 없는 Set에 멤버를 추가하며 각 멤버는 고유하지만 순위가 없습니다. ZADD는 정렬셋에 멤버와 부동소수점 점수를 함께 추가합니다. 정렬셋은 ZRANGE, ZREVRANGE로 순위 순서 또는 점수 범위로 멤버를 조회할 수 있어 리더보드, 우선순위 큐, 시계열 인덱스에 이상적입니다.

BLPOP이란 무엇이고 언제 사용해야 하나요?

BLPOP은 LPOP의 블로킹 버전입니다. 리스트가 비어 있으면 지정된 타임아웃까지 새 요소가 추가될 때까지 대기한 후 꺼내서 반환합니다. 소비자 프로세스가 루프에서 sleep으로 폴링하는 대신 효율적으로 작업을 기다려야 하는 워커 큐 구현에 적합합니다.

redis-cli로 Redis 클러스터를 어떻게 생성하나요?

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 --cluster-replicas 1 명령어를 사용합니다. 마스터 노드 3개와 각 마스터당 레플리카 1개(총 6개 노드)로 클러스터를 생성합니다. Redis 클러스터는 16384개의 해시 슬롯을 마스터에 자동으로 분배하고 레플리카 승격을 통해 장애 조치를 처리합니다.

ZRANGE와 ZREVRANGE의 차이점은 무엇인가요?

ZRANGE는 점수 오름차순(낮은 점수 먼저)으로 멤버를 반환하고, ZREVRANGE는 내림차순(높은 점수 먼저)으로 반환합니다. 둘 다 0 기반 시작/끝 인덱스를 받고 WITHSCORES 플래그로 점수를 함께 출력할 수 있습니다. 상위 N개 리더보드를 구현할 때는 ZREVRANGE key 0 N-1 WITHSCORES를 사용합니다.