소프트웨어 개발

[Redis] 레디스의 특징에 대해 간단히 알아보자

hyunjuuun.dev 2024. 2. 17. 07:00

 

Redis는 대표적인 인메모리 데이터베이스이다.

Remote Dictionary Server에서 Redis라는 이름이 되었다고 한다.

Redis의 특징에 대해 간단히 알아보자.

 

Persist on Disk

레디스의 대표 기능 중 하나로 메모리에 있는 데이터를 디스크에 저장하는 기능을 제공한다.

  • RDB(Snapshot) → 시간 단위로 백업
  • AOF(Append Only File) → 데이터 쓰기 작업 목록을 적재

기본 설정은 RDB만 활성화

단순 캐시용도면 두가지 기능 모두 끄고 사용하는 경우도 많다.

성능의 트레이드 오프를 고려하여 사용하자.

Data types

레디스는 키로 다양한 데이터 타입을 저장할 수 있다.

  • Strings
  • Lists
  • Sets
  • Hashes
  • Sorted sets

Single Thread

  • 외부로부터 여러 명령어를 동시에 전달받을 수 있지만 실제 처리는 순차적으로 하나씩만 하게 된다.
  • 싱글 스레드 구조임에도 불구하고 일반적으로 초당 10만건까지 처리가 가능한 것으로 알려져 있다.
  • 그럼에도 요청이 몰리게 되면 싱글 스레드이기에 응답 속도 지연이 일어날 수 있다는 것을 주의하자.

활용사례

Cache

  • 자주 사용하고 잘 변경되지 않는 데이터에 대해 캐시

Session Store

  • 세션 정보를 저장하는 분산 저장소로 레디스 활용
  • TTL(Time to live) 기능을 활용하여 특정 시간 이후 자동 삭제

Pub/Sub

  • 메시지 브로커로서 메시지 발행(publish), 구독(subscribe) 기능을 통해 메시지를 주고 받는 기능도 제공한다.
  • 비동기 처리나 실시간 채팅과 같은 기능에 활용할 수 있다.

Message Queue

  • 메시지를 레디스에 저장하고 해당 메시지가 필요한 서버에서 데이터를 요청한 순서대로 가져가 처리

(참고. Pub/Sub와 Message Queue 차이)

https://www.baeldung.com/pub-sub-vs-message-queues

 

leader board

  • sorted sets 데이터 타입을 통해 리더 보드를 손쉽게 구현할 수 있고 순위 정보를 빠르게 얻어낼 수 있다.