인프라/REDIS

Redis가 뭐지?

물에서육지로 2024. 11. 20. 15:18

Redis는 인메모리 데이터 구조 저장소(In-memory Data Structure Store)로, 주로 데이터베이스, 캐시(Cache), 그리고 메시지 브로커로 사용된다. Redis는 데이터를 메모리에 저장하여 빠르게 접근할 수 있도록 하여, 디스크 기반의 데이터베이스보다 더 빠른 읽기/쓰기 성능을 제공한다.

Redis의 특징과 사용되는 주요 용도를 아래와 같다.

1. 인메모리 데이터베이스

  • Redis는 모든 데이터를 메모리에 저장합니다. 따라서 디스크 I/O 없이 메모리에서 직접 데이터를 읽고 쓰므로 매우 빠르다
  • 데이터가 메모리에 저장되기 때문에, 빠른 속도가 필요한 애플리케이션에서 자주 사용된다.

2. 데이터 구조

Redis는 단순한 키-값(Key-Value) 저장소 이상의 기능을 제공합니다. 다양한 데이터 구조를 지원한다.

  • 문자열(String): 간단한 키-값 저장.
  • 리스트(List): 순차적인 데이터 목록.
  • 셋(Set): 중복 없는 집합.
  • 정렬된 셋(Sorted Set): 점수 기반으로 정렬된 데이터 집합.
  • 해시(Hash): 키와 값을 저장하는 자료구조, 객체와 비슷한 형태.
  • 비트맵(Bitmaps), HyperLogLogs 등 고급 자료구조도 지원합니다.

3. 속도

  • Redis는 데이터를 메모리에 저장하고 관리하므로, 디스크 기반 저장소에 비해 읽기/쓰기 속도가 매우 빠르다
  • 이 속도 덕분에 캐싱, 세션 관리, 실시간 분석 등의 용도로 자주 사용된다.

4. 영속성(Persistence)

  • 기본적으로 Redis는 인메모리 저장소지만, 데이터를 디스크에 영속화(persistence) 할 수 있는 기능을 제공한다.
  • RDB (Redis Database) 스냅샷 방식이나 AOF (Append-Only File) 방식으로 데이터를 디스크에 주기적으로 저장할 수 있다.
  • 영속성 옵션을 설정하지 않으면 Redis는 휘발성 저장소로 동작합니다. 즉, 서버가 종료되면 데이터가 사라진다.

5. 캐시

  • Redis는 캐시 시스템으로 자주 사용된다. 애플리케이션에서 반복적인 데이터 요청을 처리할 때 캐시를 활용하면 성능을 대폭 향상시킬 수 있다.
  • 예를 들어, 데이터베이스에서 자주 조회되는 값을 Redis에 저장하고, 애플리케이션이 해당 데이터를 빠르게 Redis에서 조회하도록 할 수 있다.

6. 메시지 큐 및 Pub/Sub

  • 메시지 큐: 작업 큐나 이벤트 시스템에서 메시지를 저장하고 전달.
  • Pub/Sub 시스템: 실시간 알림이나 이벤트 발행/구독 시스템 구축.
  • 이 방식은 실시간 알림 시스템, 로그 시스템 등에서 많이 사용된다.

7. 분산 시스템 지원

  • Redis는 클러스터링을 지원하여, 데이터가 여러 서버에 분산되어 저장될 수 있다.. 이를 통해 수평 확장성을 제공하며, 많은 양의 데이터를 처리할 수 있게 한다.

8. 간단한 API

  • Python, Java, Node.js, Go 등 여러 언어에서 Redis를 쉽게 연동할 수 있는 클라이언트 라이브러리가 제공

 

'인프라 > REDIS' 카테고리의 다른 글

Redis Session store  (1) 2024.11.23
Redis Cli 명령어  (1) 2024.11.21
Redis는 Single thread 라는데?  (3) 2024.11.20
Redis의 영속성에 대해 더 알아보자  (3) 2024.11.20
redis 명령어  (1) 2023.11.19