1. Memcached란?
Memcached는 고성능의 분산 메모리 캐시 시스템입니다. 데이터베이스 부하를 완화하여 동적 웹 응용 프로그램의 속도를 높이는 데 사용하도록 만들어졌습니다.
Redis와 Memcached 둘 다 사용하기 쉽고, 고성능을 자랑합니다.
Memcached는 간단하고 일반적으로 사용 되도록 설계되었으므로 애플리케이션 개발에 사용하기에 쉬우면서 강력합니다.
Redis는 애플리케이션 요구 사항을 충족할 수 있는 다양한 데이터 구조를 가지고 개발되었습니다. 각 엔진들이 제공하는 기능과 필요한 상황을 고려하여 선택합니다.
(Memcached와 redis는 같은 원리이며 Memcached는 단순하게 key-value 타입기반이지만 Redis는 string, set, sorted set, hashes, list 등의 다양한 자료구조를 지원합니다.)
2. Memcached 배포 방법
Memcached를 사용하면 필요한 것보다 더 많이 있는 시스템 부분에서 메모리를 가져오고 필요한 것보다 적은 부분에서 액세스할 수 있습니다.
memcached를 활용한 두 가지 배포 시나리오를 확인해보겠습니다.
첫번째 배포 시나리오는 web server에 대해 완전히 독립적인 배포 방식입니다.
이는 고전적인 배포 전략을 보여주지만 총 캐시 크기가 웹 서버의 실제 용량의 일부라는 점, 모든 노드에서 메모리 일관성을 유지합니다.
두번째 배포 시나리오는 memcached를 사용하여 캐시 메모리를 공유합니다.
Memcached를 사용하면 모든 서버가 동일한 가상 메모리 풀을 조사하고 있음을 알 수 있습니다. 이는 주어진 항목이 항상 전체 웹 클러스터의 동일한 위치에서 저장되고 검색된다는 것을 의미합니다.
Memcached에 대한 조회 횟수는 데이터베이스 조회 횟수보다 몇 십 배 많을 수 있습니다. (DB 조회를 줄임).
Memcached의 시스템 메모리에서 데이터 조회는 같은 데이터를 데이터베이스에서 조회하는 것보다 열 배 이상 빠릅니다.
3. Memcached 메모리 관리
Memcached는 스왑이 일어나지 않을 정도로 메모리가 여유있다는 가정하에 개발되었으며, 메모리가 부족해 스왑이 일어나 메모리에 저장했던 컨텐츠가 스왑 디스크에 저장될경우, 속도가 심각하게 느려지게 되기 때문에 메모리가 부족할 경우 해당기능을 사용하지 않아야 합니다.
'개발 > Redis' 카테고리의 다른 글
Redis - 키 제거 정책 2 (1) | 2022.09.25 |
---|---|
Redis - 키 제거 정책 1 (0) | 2022.09.25 |