memcached에서 바니시를 사용하는 것과 콘텐츠 캐싱을 사용하는 것의 차이점은 무엇입니까?

memcached에서 바니시를 사용하는 것과 콘텐츠 캐싱을 사용하는 것의 차이점은 무엇입니까?

웹 애플리케이션이 memcached를 사용하는 경우 varnish를 배포해야 합니까, 아니면 varnish를 사용하여 웹 콘텐츠를 캐시하는 경우 memcached가 필요합니까?

둘 중 하나 또는 둘 다를 사용해야 하는 몇 가지 시나리오를 추천해 줄 수 있는 사람이 있나요?

답변1

HTTP 프록시 서버는 memcached다양한 문제를 해결하고 소프트웨어 스택의 다양한 계층에 적용되는 다양한 기술입니다. 둘 다 유용합니다.

애플리케이션 앞에 있는 HTTP 프록시 서버는 캐시의 요청에 응답할 수 있으므로 애플리케이션이 일부 요청 로드를 처리할 필요가 없습니다. 이는 애플리케이션이 캐시 가능한 콘텐츠를 출력하고 최종 사용자가 해당 콘텐츠를 여러 번 요청하는 경우에만 작동합니다. 콘텐츠를 캐시할 수 있으려면 프록시 서버(및 브라우저)가 캐시 가능한 내용과 기간을 알 수 있도록 애플리케이션에서 적절한 HTTP 헤더를 설정해야 합니다.

요청이 애플리케이션까지 전달되는 경우(HTTP 프록시 캐시가 누락되거나 HTTP 프록시가 없는 경우) 애플리케이션은 다시 보내야 할 내용을 계산해야 합니다. 이 계산 비용이 많이 들지만 이전 요청에서 부분 데이터를 캐시할 수 있는 경우 이는 memcached애플리케이션이 나중에 다시 사용할 수 있도록 이러한 계산의 [부분] 결과를 저장하는 좋은 방법입니다. 이를 수행하려면 애플리케이션을 특별히 작성하고 memcached이 데이터를 가져오고 설정하려면 인스턴스에 연결해야 합니다.

답변2

Varnish는 html, js, css, 이미지 등과 같은 웹 파일을 제공하도록 설계되었습니다. 인터넷 클라이언트와 백엔드 애플리케이션 서버 간의 HTTP 트래픽을 가로챕니다. Varnish는 http 포트 80을 수신하고 HTTP 프로토콜을 사용합니다. 브라우저나 백엔드 애플리케이션 모두 Varnish가 존재한다는 사실을 알 필요가 없으며 올바르게 구성되면 작동합니다.

Memcached는 일반적으로 데이터베이스에 대한 쿼리 수를 줄이기 위해 데이터베이스 서버에서 애플리케이션으로 전송된 데이터를 캐시하는 데 사용되는 애플리케이션입니다. 또한 데이터가 메모리에 캐시되므로 검색 속도가 훨씬 빨라집니다. 대신 Memcached에서 데이터를 삽입하고 검색하는 애플리케이션을 제어합니다. 즉, Memcached를 올바르게 사용하려면 애플리케이션을 작성해야 합니다. Memcached는 HTTP 프로토콜을 지원하지 않습니다.

관련 정보