정의
- Redis 와 Memcached 는 대표적인 오픈소스 기반의 인메모리 데이터 저장소이다.
- 둘 다 사용하기 쉽고 고성능을 자랑하지만, 꽤나 많은 차이점이 존재한다.
- 결론적으로는 Redis 가 거의 모든 면에서 우수하다.
주요 특징 비교
항목 Memcached Redis
데이터 분할 | O | O |
다양한 데이터 타입 | X | O |
멀티 스레드 지원 | O | X |
데이터 저장(영속성) | X | O |
데이터 복제 | X | O |
트랜잭션 지원 | X | O |
pub/sub 구조 지원 | X | O |
공통점
- 오픈소스이며, 인메모리 데이터 저장소이다.
- NoSQL 을 사용하여 key-value 형태로 데이터를 저장한다.
- 데이터를 분할하여 저장할 수 있다.
차이점
확장성
- Memcached - scale up 방식 사용
- 사양을 업그레이드해서 확장하는 방식
- Memcached 는 멀티스레드를 지원하기 때문에 여러 CPU 코어를 동시에 활용할 수 있고, 이러한 방식으로 사양을 업그레이드 할 수 있음
- Redis - scale out 방식 사용
- 장비를 추가해서 확장하는 방식
- 싱글스레드이기 때문에 여러 CPU 코어를 동시에 활용할 수 없고 따라서 사양을 업그레이드 할 수 없음. 그냥 장비를 추가하는 방식을 사용해야함
Data Eviction(데이터 축출 = 공간이 필요할 때, 안쓰는 데이터를 지우는 전략)
- Memcached - LRU 방식 사용
- Least Recently Used = 사용된 지 제일 오래된 데이터를 쫓아냄
- Redis - LRU 를 포함해서 더 많은 다양한 방법들이 사용됨
데이터 타입 지원
- Memcached - String
- Redis - String, Hash, Sorted Set, List, Set 등 다양한 데이터 타입 지원
영속성
- Memcached - 영속성 지원 X
- Redis - 영속성 지원
복제
- Memcached - 복제 지원 X
- Redis - 복제 지원
트랜잭션 지원
- Memcached - 트랜잭션 지원 X
- Redis - 트랜잭션 지원
Pub/Sub 지원
- Memcached - pub/sub 구조 지원 X
- Redis - pub/sub 구조 지원
'ETC' 카테고리의 다른 글
쿠버네티스(k8s)의 구조 - 쿠버네티스 시리즈(1) (0) | 2023.06.26 |
---|---|
Docker의 컨테이너 격리 (0) | 2023.06.24 |
TDD(Test Driven Development) (0) | 2023.06.21 |
그라파나와 프로메테우스 (0) | 2023.06.18 |
CI/CD란 ? (0) | 2023.06.18 |