본문 바로가기
Computer Science/DB

Redis란?

by 밍상 2023. 3. 17.

우아한 레디스 영상과 구글링을 참조해서 작성된 문서입니다. (https://youtu.be/mPB2CZiAkKM)

 

Redis 

  • in-memory 자료구조다.
  • 오픈소스인만큼 수정해서 사용해도 상관없다.
  • 레디스가 서포팅하는 자료구조
    • String, set, sorted-set, hashes, list
    • Hyperloglog, bitmap, geospatial index
    • Stream

Redis의 자료구조는 Atomic하기때문에 Race Condition을 피할 수 있다.

그래도 잘못짜면 발생

 

왜 Collection이 중요한가?

 

Redis 사용처

  • Remote Data Store
    • A, B, C 서버에서 데이터를 공유하고 싶을때
  • 한 대 에서만 필요하다면 전역 변수를 쓰면 되지 않을까?
    • Redis가 아토믹 보장
  • 주로 많이 쓰는 곳들
    • 인증 토큰 저장
    • Ranking board

Redis Collections

  • Strings
  • List - LPUSH, LPOP, RPUSH, RPOP(왼쪽, 오른쪽에서 push, pop 가능)
  • Set - 데이터가 있는지 없는지만 체크하는 용도
  • Sorted Set - score를 통해 순서를 만듦
  • Hash

Redis 운영

  • 메모리 관리를 잘하자
  • O(N) 관련 명령어는 주의하자
  • Replication

Redis 데이터 분산 방법

1. 모듈러같은 방식으로 데이터를 분산하면 서버가 증가되고, 감소될때마다 리밸런싱이 일어나야됨

2. 키 값 해싱을 통해 자기보다 크지만 가장가까운 값으로 이동

 

Redis Cluster

Hash 기반으로 Slot 16384로 구분

 

장점

  •  자체적인 Primary, Secondary Failover
  • Slot 단위의 데이터 관리

단점

  • 메모리 사용량 더 많음
  • Migration 자체는 관리자가 시점을 결정해야 함
  • 라이브러리 구현이 필요

 

 

'Computer Science > DB' 카테고리의 다른 글

MongoDB 기본 개념에 대해 알아보기 (정리)  (0) 2022.05.13
DB 기초  (0) 2022.02.03
트랜잭션  (0) 2021.11.30
NoSQL  (0) 2021.10.29
정규화  (0) 2021.10.29