Redis란 무엇이며, Redis를 사용해야 하는 이유는?

발행: (2026년 1월 7일 오전 04:55 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

Redis란?

Redis(Remote DIctionary Server)는 키/값 쌍으로 데이터를 저장하는 오픈‑소스 인‑메모리 NoSQL 데이터베이스입니다. 단독 데이터베이스로 사용할 수도 있지만, 성능을 높이기 위해 다른 데이터베이스와 함께 사용하는 경우가 많습니다. Redis는 리더보드, 메신저, 게임 등 실시간 데이터가 필요한 상황에서 빛을 발합니다.

이미 데이터베이스가 있는데 왜 Redis를 사용해야 할까요?

  • 인‑메모리 속도 – 대부분의 데이터가 RAM에 존재하므로 Redis는 서브밀리초 지연 시간을 제공합니다. 읽기와 쓰기는 일반적으로 O(1)이며, 디스크 기반 접근보다 1,000–10,000배 빠릅니다.
  • 캐싱 – 자주 요청되는 데이터를 Redis에 캐시하면 응답 시간이 크게 줄어들고, 느린 데이터 소스로 인한 병목 현상이 사라집니다.
  • 통합 용이성 – 100개가 넘는 오픈‑소스 클라이언트 라이브러리가 다양한 프로그래밍 언어에 제공됩니다. 또한 Redis는 Redis SentinelRedis Cluster를 통해 고가용성을 제공하고, Redis Enterprise는 클러스터링, 로드 밸런싱 등 엔터프라이즈 수준 서비스를 추가합니다.
  • 영속성 옵션 – 기본적으로 인‑메모리 저장이 강점이지만, Redis는 RDB 스냅샷(및 AOF 로그)을 사용해 디스크에 데이터를 영구 저장할 수 있어 단독 데이터베이스로도 사용할 수 있습니다.
  • 다양한 데이터 모델 – Redis는 폭넓은 데이터 타입을 지원하므로 AI 및 대형 언어 모델(LLM) 워크로드를 포함한 다양한 사용 사례에 적합합니다.

Redis 데이터 타입

  • String
  • Hash
  • List
  • Set
  • Sorted set
  • Vector set
  • Stream
  • Bitmap
  • Bitfield
  • Geospatial
  • JSON
  • Probabilistic data types
  • Time series

기본 Redis 명령어

Note: Command keywords are traditionally written in uppercase, but Redis accepts them in any case.

값 설정 및 조회

SET name Joy
# returns OK
GET name
# returns "Joy"

만료 설정

TTL(Time‑to‑Live)이 60초인 키를 설정합니다:

SET name Joy EX 60

만료를 제거하고 키를 영구적으로 만듭니다:

PERSIST name

키 삭제

DEL name

존재 여부 확인

EXISTS name
# returns 0 if the key does not exist, 1 if it does

리스트 연산 (push/pop)

리스트의 왼쪽(헤드) 또는 오른쪽(테일)에 요소를 푸시합니다:

LPUSH mylist "first"
RPUSH mylist "last"

왼쪽 또는 오른쪽에서 요소를 팝합니다:

LPOP mylist   # removes and returns the first element
RPOP mylist   # removes and returns the last element

이 예제들은 Redis 명령어 집합의 일부에 불과하지만, 애플리케이션에서 Redis를 시작하는 것이 얼마나 간단한지 보여줍니다. 전체 레퍼런스는 공식 Redis documentation을 참고하세요.

Back to Blog

관련 글

더 보기 »