2017-01-26 6 views
1

웹 응용 프로그램을 만들려고 노력 중이므로 성능 향상을 위해 캐시 시스템이 필요합니다. 로드 밸런서와 함께 nginx를 사용하고 있습니다.광택이있는 경우 memcached를 사용하는 이유

캐시에서 직접 응답하고 nginx에 요청을 보내지 않으려 고 HTTP 프록시로 니스를보고있었습니다.

나중에 memcached, RAM의 멋진 키 값 쌍 캐시를 살펴 봅니다.

이제 바니시로 모든 요청을 캐시하고 자주 변경되는 동적 콘텐츠에 대해 약간의 TTL을 설정할 수 있다면 왜 시스템을 memcached로 설정해야합니까?

정적 콘텐츠에만 바니시를 사용해야하고 memcached로 동적 콘텐츠를 관리해야합니까?

모든 요청에 ​​바니시를 사용하는 것은 나쁜 습관이며 과다한 작업 (동적 내용의 경우) 작업이 많을까요?

나는 감사

답변

2

니스 + Memcached가 완벽 의미가 조합입니다 ... 약간의 혼란입니다.

니스 당신이 높은 TTL을 설정할 수, 게스트 영역을 캐싱하여 완전히 우회 PHP 엔진을 실행하는 데 도움이 :

일반적으로는 웹 응용 프로그램은 게스트와 지역 로그인에있다. 예 : 게스트 사용자에게 표시되는 기사 콘텐츠.

Memcached가 는 사용자에 대한 로그인 PHP 엔진 요청 광택 캐시 만족되지, 즉에 대한 부담을 완화에 도움이된다. 거기에는 일반적인 SQL 쿼리 및 기타 일시적인 데이터가 포함되어있어 PHP를 실행할 때마다 재생성에 비용이 많이 듭니다.

+0

저는 자바를 사용하고 있습니다.하지만 당신이 말한 것은 모든 언어에 대해 동등하다고 생각합니다. 따라서 나는 "userLoggedContent"를 Varnish에 캐시하지 말고 기록 된 사용자에 의존하지 않는 내용 만 캐시해야합니다. 사용자가 다른 모든 컨텐트는 MemCached를 통해 캐싱 될 수 있습니다. 맞습니까? –

+0

기본적으로 그렇습니다. 당신은 그것이 어쨌든 기본 바니시 동작이라는 것을 이해해야합니다. 쿠키 (로그인)와 함께 제공되는 요청을 캐시하지 않습니다. 물론, 바니시 (예 : 사이드 바 출력 (ESI 활성화 필요))와 같이 로그인 된 사용자의 페이지 부분까지 가능한 한 많이 캐시하고 싶을 수도 있습니다. –