정의 : 메모리 기반의 키-값 데이터 저장소로, 주로 캐싱과 빠른 데이터 검색에 사용됩니다. 데이터는 메모리에 저장되기 때문에 매우 빠른 응답 속도를 자랑합니다.
장점 : Read/Write 속도
단점 : 휘발성
> 많은 Data 중 반복적으로 요구도히거나, 특별히 빠른 입/출력이 필요한 데이터를 잘 선별하는 것이 좋은 사용 사례Redis 서버 하나만 사용하는 가장 단순한 방식
장점 : 설정이 간단함
단점 : 서버 하나만 있어서 고장 나면 복구가 어렵다.
![[Pasted image 20240924123027.png]]
한 서버(Master)가 데이터를 저장하고, 다른 서버(Replica) 가 그 데이터를 복사해 보관
장점 : 읽기 속도를 높이고, 마스터가 고장 나도 Replica가 데이터를 보관하고 있어서 안전
단점 : 복잡도가 조금 더 올라간다.
![[Pasted image 20240924123048.png]]
Master-Replica 구조에 Sentinel 이라는 관리자가 추가, Sentinel은 마스터가 고장 났을 때, 자동으로 Replica를 새로운 마스터로 승격시킴.
장점 : 고장 대응이 자동화됩니다.
단점 : 다 많은 서버가 필요
![[Pasted image 20240924123102.png]]
여러 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 | MemCached | |
|---|---|---|
| DataType | Hash, List, Set, Sorted Set, Geo, String | String |
| Thread | Single Thread | Multi Threads |
| Scale | ScaleOut | Scale Up |
| Memory Policy | no eviction, volatile-lru, volatile-ttl, allkey-random | LRU |
| Persistence | AOF, RDB | None |
| ETC | LUA Script |
LRU : 어떤 알고리즘에 의해서 순차적으로 지워진다
TTL : Time to leave 시간이 짧은 애들부터 지워진다.