Pink Spider/Memcached 와 redis 비교

Created Tue, 20 Jan 2026 09:41:22 +0900 Modified Tue, 20 Jan 2026 09:42:14 +0900
1685 Words 8 min

MemcachedRedis는 둘 다 고성능 인메모리(In-memory) 키-값(Key-Value) 저장소로, 주로 데이터베이스 부하를 줄이고 애플리케이션 속도를 높이는 캐시(Cache) 용도로 사용된다는 공통점이 있습니다.

하지만 “단순함과 멀티스레드(Memcached)” 대 **“강력한 기능과 유연성(Redis)”**이라는 명확한 차이가 있습니다.

두 기술의 핵심적인 차이를 4가지 관점(데이터 구조, 아키텍처, 영속성, 확장성)에서 정리해 드립니다.


1. 한눈에 보는 비교 (Executive Summary)

특징 Memcached Redis
주요 컨셉 고성능, 단순함, 멀티스레드 다양한 자료구조, 영속성, 기능 풍부
자료 구조 String (단순 문자열/바이너리) String, List, Set, Hash, Sorted Set, Geo 등
스레드 모델 멀티 스레드 (Multi-threaded) 싱글 스레드 (Single-threaded) (I/O는 멀티 가능)
데이터 영속성 지원 안 함 (재부팅 시 데이터 소멸) 지원 (RDB, AOF)
확장성(Clustering) 클라이언트 측 분산 (Consistent Hashing) 서버 측 분산 (Redis Cluster)
복제(Replication) 지원 안 함 Master-Slave 복제 지원
주요 용도 단순 캐싱 (세션, HTML 조각) 복잡한 캐싱, 리더보드, 대기열, 메시지 브로커

2. 상세 차이점 분석

① 데이터 구조 (Data Structures)

  • Memcached: 오직 **문자열(String)**만 저장합니다. 리스트나 해시 같은 구조를 저장하려면 JSON 등으로 직렬화(Serialize)해서 문자열로 만든 뒤 저장해야 합니다. 데이터를 수정하려면 전체 데이터를 가져와서 수정한 뒤 다시 덮어써야 하는 단점이 있습니다.
  • Redis: 다양한 자료구조를 지원합니다. 리스트(List)에 요소를 추가하거나, 해시(Hash)의 특정 필드만 수정하는 등 효율적인 데이터 조작이 가능합니다.
  • 활용 예: ‘실시간 랭킹’ 구현 시 Redis의 Sorted Set을 쓰면 매우 쉽게 구현 가능합니다.

② 스레드 모델 (Architecture)

가장 큰 아키텍처 차이입니다.

  • Memcached (멀티 스레드): 여러 개의 코어를 동시에 사용하여 트래픽을 처리합니다. 따라서 **Scale-up(서버 사양 높이기)**을 통해 처리량을 쉽게 늘릴 수 있습니다.
  • Redis (싱글 스레드 기반): 실제 명령 처리는 하나의 스레드에서 순차적으로 실행됩니다. (이벤트 루프 방식).
  • 주의점: Redis는 한 번에 하나의 명령만 처리하므로, 처리 시간이 긴 명령(예: KEYS *, 전체 데이터 삭제 등)을 실행하면 그동안 다른 요청들이 대기해야 하는 Blocking 현상이 발생할 수 있습니다. (※ Redis 6.0부터 네트워크 I/O는 멀티 스레드로 처리가 가능해졌지만, 명령 실행은 여전히 싱글 스레드입니다.)

③ 영속성 (Persistence)

  • Memcached: 메모리에만 데이터를 저장하므로 프로세스가 죽거나 서버가 재부팅되면 데이터가 모두 사라집니다. 캐시 용도로만 적합합니다.
  • Redis: 데이터를 디스크에 저장하여 복구할 수 있는 옵션을 제공합니다.
  • RDB: 특정 시점의 스냅샷 저장.
  • AOF: 모든 쓰기 작업을 로그로 기록.

④ 확장성 (Scaling)

  • Memcached: 서버끼리 서로 통신하지 않습니다. 데이터 분산은 **클라이언트(애플리케이션)**가 어떤 서버에 저장할지 결정합니다(Consistent Hashing). 클러스터 관리가 비교적 단순하지만, 서버 추가/제거 시 캐시 미스(Cache Miss) 관리가 필요합니다.
  • Redis: Redis Cluster 기능을 통해 서버끼리 통신하며 데이터를 자동으로 분산(Sharding)하고, 장애 시 자동으로 복구(Failover)하는 기능을 자체적으로 지원합니다.

3. 어떤 것을 선택해야 할까요?

최근의 기술 트렌드는 Redis를 기본으로 선택하는 추세입니다. Redis가 Memcached의 기능을 거의 다 포함하면서도 더 많은 기능을 제공하기 때문입니다.

✅ Redis를 선택하세요

  • 단순 문자열 외에 리스트, 셋, 정렬된 셋 등 복잡한 데이터 처리가 필요할 때.
  • **데이터의 영속성(Persistence)**이 필요하거나, 중요 데이터의 백업이 필요할 때.
  • 여러 대의 서버로 클러스터링 및 고가용성(HA) 구성이 필요할 때.
  • Pub/Sub(메시지 큐), Geo(위치 정보) 등의 부가 기능이 필요할 때.

✅ Memcached를 선택하세요

  • 데이터가 작고 정적이며(HTML 조각, 단순 세션 객체), 극도로 높은 트래픽이 발생하는 경우.
  • 복잡한 기능 없이 가장 단순한 캐시 시스템이 필요할 때.
  • 대용량의 멀티 코어 서버 하나에서 최대한의 스레드 성능을 뽑아내야 할 때 (Redis는 코어 1개만 주로 사용하므로, 멀티 코어 활용 면에서는 Memcached가 설정이 더 간단할 수 있습니다).