본문 바로가기

Back-End/Redis

Redis란?

Redis란 Remote Dictionary Server의 약자이다.

 

Redis의 특징 - 다양한 Collection 지원 

Redis는 In-memory 데이터베이스이다

  • 디스크 접근인 RDBMS 속도 << 메모리 접근인 레디스

이게 흔히 알고 있는 Redis의 특징이지만, Redis는 다른 In-memory 데이터베이스와 다른 특징을 가지고 있다.

  • 다양한 자료구조를 지원 -> 개발 편의성 

Redis에서 지원하는 다양한 Collection

이렇게만 봐서는 뭔가 와닿지가 않는다.

예를 들어, 실시간 랭킹 서버를 구현한다면?

 

1) RDBMS를 이용하여 구현한 경우

  • 저장된 SCORE를 정렬하여 가져오는 과정 필요
  • 개수 많아지면 느려짐
  • 트랜잭션 문제도 신경 써야함

2) Redis를 이용하여 구현한 경우

  • Redis의 Sorted Set을 사용하기 때문에 정렬이 필요 없음 ( 다양한 Collection의 장점 )
  • 모든 자료구조는 Atomic 하기 때문에 데이터 정합성 보장이 쉬움

 

Redis Key

Redis 키를 잘 설계 하는것도 중요하다. 왜냐하면, 키를 생성하는 방법에 따라 분산이 몰릴 수가 있기 때문이다. 

 

키 설계는 어떻게?

  • object-type : id ( ex : user:1000 )
  • 키는 가독성이 좋도록 설계
  • 너무 길어진다면 hash의 member로 저장하는거 권장

참고

https://meetup.toast.com/posts/224

'Back-End > Redis' 카테고리의 다른 글

레디스와 분산락  (0) 2020.07.19
레디스(Redis)의 다양한 활용 사례  (4) 2020.03.17
Redis Spring Boot에 설정하기 및 개요  (0) 2020.01.24