memcached는 고성능 분산 메모리 캐싱 시스템으로 자주 요청되는 데이터를 메모리에 캐싱하여 데이터베이스 부하를 줄이고 처리속도를 대폭 향상시키는데 사용된다.
네트워크를 통한 데이터 전송 또한 최적화 되어있어 지연 시간이 적다.
클라이언트 - 서버 모델로 TCP 또는 UDP를 통해 작동되며 키-값 형태로 저장된다.
키는 문자열이고 최대 1MB까지 저장이 가능하며 서버의 가용 메모리가 초과될 시 LRU 정책에 따라 오래된 데이터부터 삭제처리 된다.
해시 알고리즘을 사용하여 데이터를 저장하고 찾는다.
항목 | Memcached | Redis |
---|---|---|
데이터 구조 | 단순 키-값 구조 | 다양한 데이터 구조 (리스트, 셋, 해시 등) |
영구 저장 | 지원하지 않음 | 옵션으로 지원 (RDB, AOF) |
성능 | 단순 캐싱 작업에 최적화 | 데이터 구조와 기능이 많아 약간 느릴 수 있음 |
확장성 | 멀티스레드 지원, 확장성 높음 | 싱글스레드 기반, 클러스터링으로 확장 |
사용 사례 | 단순 캐시, 세션 관리, 페이지 렌더링 | 캐시, 메시지 큐, 데이터 분석 등 다양 |
단순히 키-값 저장소로 복잡한 데이터 구조를 지원하지 않기 때문에 특정작업(단순한 캐싱이나 세션관리) 등에서 더 가볍고 빠른
선택이 될 수 있다. 단순히 DB 쿼리 결과를 캐싱하고자 하는 사람의 경우 레디스보다 나은 선택일수도 있다.