본문 바로가기

OSS

[Redis] Redis란?

반응형

Redis란?

레디스는 고성능 인메모리 데이터 구조 저장소입니다. Remote Dictionary Server의 약어이며, C언어로 만들어졌습니다. 메모리를 사용하기 때문에 매우 빠릅니다.

이전에 유사한 인메모리 데이터 저장소들이 있었지만, 레디스는 다양한 데이터 구조를 지원하기 때문에 많이 사용됩니다:

  • 문자열(strings)
  • 해시(hashes)
  • 리스트(lists)
  • 집합(sets)
  • 정렬된 집합(sorted sets)
  • 비트맵(bitmaps)
  • 하이퍼로그로그(hyperloglogs)
  • 지리 공간 인덱스(geospatial indexes)

Redis의 주요 특징

  • 많은 데이터를 메모리에 저장합니다. 실시간 분석에 많이 사용됩니다.
  • 스냅샷을 지원하여 데이터의 영구 저장이 가능합니다.
  • pub/sub 메시징을 통해 실시간 데이터를 구독할 수 있습니다.
  • 자동 샤딩과 고가용성(HA) 구성이 가능합니다.
  • Replication을 지원하여 데이터 복제를 쉽게 설정할 수 있습니다.
  • Lua 스크립트를 사용한 서버 측 스크립팅을 지원합니다.
  • 트랜잭션을 지원하여 여러 명령어를 원자적으로 처리할 수 있습니다.

Redis의 주요 사용 사례

  1. 캐싱: 웹 애플리케이션에서 자주 조회되는 데이터를 캐싱하여 성능을 향상시킵니다.
  2. 세션 관리: 사용자 세션을 관리하는 데 사용됩니다.
  3. 실시간 분석: 실시간으로 데이터를 처리하고 분석하는 데 유용합니다.
  4. 메시지 큐: pub/sub 모델을 통해 메시지 큐로 사용할 수 있습니다.
  5. 순위표 및 카운팅: 소셜 네트워크 서비스의 좋아요 수, 게임의 순위표 등을 관리할 수 있습니다.

예제: SET 명령어

SET myKey 1

위 명령어는 key가 'myKey'이고 value가 '1'인 데이터를 저장합니다.

자주 사용되는 기본 명령어

  • SET key value: 주어진 key에 대해 value를 설정합니다.
  • GET key: 주어진 key의 값을 가져옵니다.
  • MSET key1 value1 key2 value2 ...: 여러 key-value 쌍을 한 번에 설정합니다.
  • MGET key1 key2 ...: 여러 key의 값을 한 번에 가져옵니다.
  • INCR key: key의 값을 정수로 취급하여 1 증가시킵니다.
  • INCRBY key increment: key의 값을 정수로 취급하여 지정한 값만큼 증가시킵니다.
반응형