2017-02-04 3 views
0

내 웹 사이트 중 하나에서 다른 API를 호출하고 있습니다. 멀티 컬 PHP로 최적의 결과를 얻을 수 있습니다. 그러나 트래픽이 조금 높으면 속도가 매우 느려지는 것을 알 수 있습니다. 캐싱은 웹 사이트의 속도를 높이는 또 다른 방법이라고 읽었습니다. 그러나, 내 질문은 내가 사용하는 API 호출이 전적으로 사용자 기반 입력에 의존 할 때 캐싱을 사용할 수 있습니까? 아니면 이에 대한 대안이 있습니까?PHP를 사용하여 동적 API 호출 속도를 높입니다.

+0

캐시 키에 매개 변수를 포함 할 수 있으므로 이미 동일한 매개 변수로 호출을 캐시 한 경우 API로 이동할 필요가 없습니다. – Barmar

+0

안녕 바머, 신속한 회신에 감사드립니다. 귀하의 솔루션은 완벽 해 보이지만 매개 변수의 값을 모르는 경우 동일한 해결책이 될 수 있습니다. 매개 변수의 값은 사용자에 따라 달라 지므로 예를 들면. 이 호출에서 api.indeed.com/ads/apisearch?q=PHP&l=&radius=&st=&jt=&start=5&limit=8&fromage=&filter=&latlong=&co=us&chnl=&userip=1.2.3.4&useragent=Mozilla/%2F4.0 % 28Firefox % 29 & v = 2 q (키워드)와 l (위치)의 값을 모르는 경우 어떻게 캐시합니까? – Susan

+0

나는이 문제를 이해하지 못한다. 사용자는 매개 변수를 PHP 스크립트로 보냅니다. 따라서 'curl'을 사용하기 전에 캐시의 매개 변수를 확인할 수 있습니다. – Barmar

답변

1

요청이 너무 길어서 다른 요청이 지연 될 수 있습니다.

0

질문에 대한 답변은 사용자가 데이터로 수행하는 작업의 종류에 따라 다릅니다. 기본적으로 캐시는 데이터 검색, 쿼리와 관련된 모든 작업에 사용할 수 있으며 데이터 삽입, 변경 또는 삭제에 적합하지 않습니다. 웹 애플리케이션에서 캐시를 구현하는 방법은 여러 가지가 있지만 가장 쉬운 방법 중 하나는 데이터를 검색하는 모든 사용자의 요청에 GET 요청을 사용하고 웹 서버 또는 CDN을 캐시하도록 구성하는 것입니다.

+0

안녕하세요, 태국어, 귀하의 회신에 감사드립니다. 캐시를 목적으로 만 사용하고 있지만 문제는 사용자의 요청이 변경된다는 것입니다. 예를 들면. 이 호출에서 - api.indeed.com/ads/apisearch?q=PHP&l=&radius=&st=&jt=&start=5 & limit = 8 & fromage = & f ilter = & latlong = & co = u s & chnl = & userip = 1.2.3 .4 & useragent = Mozilla /%2F4.0%28Firefox%29 & v = 2 매개 변수 q와 l의 값은 동적이므로 어떻게 캐시 할 수 있습니까? – Susan

+0

요청이 모두 다를 수는 없습니다. 사용자와 사용자 에이전트를 삽입하더라도 요청이 동일해야합니다 (실제로는 필요하지 않은 경우 피해야합니다). 예를 들어 한 사용자가 결과를 표시하는 페이지를 다시로드 한 다음 Api에서 데이터를 가져 오는 경우 웹 사이트에서 이전에 본 캐시 된 결과 만 사용자에게 제공 할 수 있습니다. –

+0

이러한 요청은 실제로 다른 사용자 검색어입니다. 따라서 10 명의 사용자가 10 개의 다른 항목을 검색하는 경우 완전히 다른 검색 쿼리가 10 개 있습니다. 예를 들면. 하나의 호출은 api.indeed.com/ads/apisearch?q=PHP가 될 수 있고, 다른 호출은 api.indeed.com/ads/apisearch?q=Java 등등이 될 수 있습니다. 6 가지 API에 대한 호출이있을 것입니다. 이것은 프로그램이 매우 느리게되고있는 상황입니다. 저의 캐시 개념은 고도로 사용되는 데이터를 서버에 저장하는 것을 말합니다. 그런데 어떻게 다른 쿼리에 대해 이러한 데이터를 저장할 수 있습니까? 또한 속도를 높이는 다른 대안이 있습니까? – Susan