( •̀ ω •́ )✧

[Redis] Redis란? 본문

✏️ 노트/spring

[Redis] Redis란?

키루루 2023. 6. 23. 17:05

💡 Redis (Remote Dictionary Server)

→ 오픈 소스 기반의 in-memory 데이터 저장소

 

 

💭 Redis 의 특징

  1. In-Memory 저장소
    • 👍 메모리에 데이터를 저장하기 때문에 빠른 읽기 및 쓰기 속도를 제공함
    • 👎 메모리 기반의 저장소이기 때문에 저장 가능한 데이터 양에 제한이 있음
    • 👎 메모리에 저장되기 때문에 서버 장애 시 데이터가 손실될 수 있음
  2. 다양한 데이터 구조
    • 👍 단순한 Key-Value 구조뿐만 아니라 String, List, Set, Sorted Set, Hash 등 다양한 데이터 구조를 지원
  3. Pub/Sub 메시징
    • 👍 Publish/Subscribe 메시징 시스템을 지원하여 실시간 데이터 푸시 및 메시지 큐 기능을 제공
  4. 지속성
    • 👍 디스크에 데이터를 저장하여 장애 발생 시에도 데이터의 지속성을 보장
  5. 클러스터링
    • 👍 고가용성과 확장성을 위해 클러스터링을 지원

 

 

🎟️ Redis & Token 관리

프로젝트의 token 관리에 Redis를 사용하는 것은 효과적인 방법이다.

  1. 성능
    • 토큰은 인증과 권한 부여를 위해 매 요청마다 검증되어야 하므로, 빠른 읽기와 쓰기 속도가 필요
    • Redis는 메모리 기반의 데이터 저장소로 데이터를 디스크에 저장하지 않고 메모리에서 직접 읽고 쓰기 때문에 매우 빠른 성능을 제공함
  2. 확장성
    • 분산 환경에서 토큰을 관리해야 할 경우, Redis는 클러스터링과 레플리케이션을 지원하여 확장성과 가용성을 제공함
    • 여러 Redis 인스턴스를 설정하여 토큰 데이터를 분산 저장하고 장애 발생 시에도 서비스 중단 없이 운영할 수 있음
  3. 만료 기능
    • Redis는 데이터의 만료 기능을 지원함
    • 토큰은 일정 시간이 지나면 만료되어야 하며, Redis의 만료 기능을 활용하면 토큰의 자동 삭제와 관리가 가능
    • 이를 통해 토큰의 유효성을 쉽게 관리하고 만료된 토큰을 자동으로 처리할 수 있음
  4. 추가 기능
    • Redis의 Hash 데이터 구조를 사용하여 토큰과 관련된 추가 정보를 저장할 수 있음
    • Redis의 트랜잭션 기능을 활용하여 안전한 토큰 처리를 할 수 있음

'✏️ 노트 > spring' 카테고리의 다른 글

[Spring] IoC(Inversion of Control) Container  (1) 2023.11.03
[Spring] DI(Dependency Injection)  (1) 2023.11.03
[JPA] JPA란?  (0) 2023.06.10
Comments