Memcached란?
2021. 7. 19. 17:04ㆍCS/DB
728x90
memcached - a distributed memory object caching system
What is Memcached? Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load. Memcached is an in-memory key-value store for s
memcached.org
보면 Netflix, packet.com 등에서 쓰나보다.
로그인을 구현하려고, 쿠키 & 세션을 찾아보다가 Memcached 시스템을 접하게 되었다. 레디스나 카산드라같은 캐시라는데, 나는 캐시를 써본 적도 없고, 어떤 것인지 정확하게 이해가 안가서 일단 Memcached 가 무엇인지 찾아보았다.
정의
범용 분산 캐시 시스템. 외부 데이터 소스의 읽기 횟수를 줄이기 위해 데이터와 객체들을 RAM에 캐시 처리함으로써 동적 데이터베이스 드리븐 웹사이트의 속도를 높이기 위해 종종 사용 된다.
- 필요량보다 많은 메모리를 가지고 있을 때, 시스템으로부터 더 쉽게 가져다 사용할 수 있도록 만들어 줌.
- DB나 API 호출 또는 페이지 렌더링 등에서 받아오는 데이터를 Key-Value 형태로 메모리에 저장
장점
- 시스템의 사용되지 않는 일부 메모리 활용할 수 있어서 성능 향상 가능
- 메모리에서 읽어와서 응답속도가 빠름
- Consistent hash 알고리즘 사용하여 물리적인 별도의 캐시서버를 로직상 하나로 보고 사용 가능.->독립된 노드 구조의 캐시 시스템 해결
- 다양한 개발 언어 지원
단점
- 재부팅 시 소멸되어 영구적으로 활용할 수 없다.
- 다시 데이터가 저장되는 기간 동안은 디비에서 부하를 받아내야 함.
- 데이터 삭제 및 수정시 DB & Memcached에 동시 접근이 가능해야 하므로 개발 복잡도가 증가
참조
'CS > DB' 카테고리의 다른 글
NoSql, 클러스터링vs 리플리케이션, DB샤딩 (0) | 2021.08.05 |
---|