Redis

mangez_js·2024년 9월 24일

Study

목록 보기
7/47

Redis(Remote Dictionary Server)

정의 : 메모리 기반의 키-값 데이터 저장소로, 주로 캐싱과 빠른 데이터 검색에 사용됩니다. 데이터는 메모리에 저장되기 때문에 매우 빠른 응답 속도를 자랑합니다.

장점 : Read/Write 속도

  • Hardware 차이에서 오는 기본적인 performance gap
  • 다양한 type의 아키텍쳐를 지원(Single, Master-Slave, Sentiner, Cluster)
  • Partitioning - 여러 노드에 분산
  • 인기가 많은

단점 : 휘발성

  • AOF, RDB Snapshot을 통해 Disk 에 저장하여 휘발성 문제를 해소
  • Single Thread
  • Memory Fragmentation
  • Big Size Data 에 적합하지 않다.

사용 목적

  • Caching
    	> 많은 Data 중 반복적으로 요구도히거나, 특별히 빠른 입/출력이 필요한 데이터를 잘 선별하는 것이 좋은 사용 사례

일반적 사용

  • Session Store
  • List Data Caching

Redis 구조

  1. Stand Alone

    Redis 서버 하나만 사용하는 가장 단순한 방식
    장점 : 설정이 간단함
    단점 : 서버 하나만 있어서 고장 나면 복구가 어렵다.
    ![[Pasted image 20240924123027.png]]

  2. Master-Replica

    한 서버(Master)가 데이터를 저장하고, 다른 서버(Replica) 가 그 데이터를 복사해 보관
    장점 : 읽기 속도를 높이고, 마스터가 고장 나도 Replica가 데이터를 보관하고 있어서 안전
    단점 : 복잡도가 조금 더 올라간다.
    ![[Pasted image 20240924123048.png]]

  3. Sentiner

    Master-Replica 구조에 Sentinel 이라는 관리자가 추가, Sentinel은 마스터가 고장 났을 때, 자동으로 Replica를 새로운 마스터로 승격시킴.
    장점 : 고장 대응이 자동화됩니다.
    단점 : 다 많은 서버가 필요
    ![[Pasted image 20240924123102.png]]

  4. Cluster

    여러 Master 와 Replica 가 그룹을 이뤄 데이터를 나눠서 관리
    장점 : 엄청 많은 데이터를 처리할 수 있습니다.
    단점 : 설정과 관리가 가장 어렵습니다.
    ![[Pasted image 20240924123115.png]]

가용성(Availability) : Cluster >= Sentinel > Master-Replica > SA
성능(Performance) : Cluster > Sentinel > Master-Replica > SA
효율성(Efficiency) : SA > Master-Replica >= Sentinel > Cluster

Redis VS MemCached

RedisMemCached
DataTypeHash, List, Set, Sorted Set, Geo, StringString
ThreadSingle ThreadMulti Threads
ScaleScaleOutScale Up
Memory Policyno eviction, volatile-lru, volatile-ttl, allkey-randomLRU
PersistenceAOF, RDBNone
ETCLUA Script

LRU : 어떤 알고리즘에 의해서 순차적으로 지워진다
TTL : Time to leave 시간이 짧은 애들부터 지워진다.

0개의 댓글