현재 위치: > 최신 기사 목록> curl_share_init () 함수를 사용하여 DNS 캐시 공유를 구현하고 PHP 애플리케이션 성능을 향상시키는 방법은 무엇입니까?

curl_share_init () 함수를 사용하여 DNS 캐시 공유를 구현하고 PHP 애플리케이션 성능을 향상시키는 방법은 무엇입니까?

M66 2025-06-23

PHP에서 Curl은 URL을 통해 HTTP 요청을 수행하기위한 매우 강력한 도구입니다. Get, Post 요청 및 기타 여러 HTTP 관련 작업을 처리 할 수 ​​있습니다. 그러나 DNS 쿼리는 종종 여러 HTTP 요청, 특히 고주파 요청에서 성능 병목 현상 중 하나입니다. 각 요청에 대한 DNS를 반복하지 않도록 PHP는 DNS 캐시 공유에 대해 Curl_share_init () 함수를 제공하여 PHP 응용 프로그램의 성능을 향상시킵니다.

curl_share_init () 함수는 무엇입니까?

curl_share_init ()는 공유 리소스를 초기화하는 데 사용되는 함수입니다. 공유 리소스는 여러 컬 세션, 특히 DNS 캐시간에 데이터를 공유하는 데 사용될 수 있습니다. DNS 캐시를 공유함으로써 여러 CURL 요청은 중복 DNS 쿼리를 피할 수 있으므로 응용 프로그램 성능을 향상시킬 수 있습니다.

기능 서명 :

 resource curl_share_init ( void )

이 함수에는 입력 매개 변수가 없으며 컬 공유 핸들 ( Curl_share_handle )을 반환합니다. 이 공유 핸들은 다른 컬 세션간에 캐시 된 데이터를 공유하는 데 사용됩니다.

DNS 캐시 공유를 사용하는 이유는 무엇입니까?

공유 캐시가 없으면 Curl은 요청할 때마다 DNS 쿼리를 수행하여 대기 시간이 증가합니다. 특히 동일한 도메인 이름으로 여러 요청을 할 때 DNS 쿼리의 반복은 많은 시간을 낭비 할 수 있습니다. DNS 캐시 공유를 활성화함으로써 DNS 해상도의 오버 헤드가 크게 줄어들어 PHP 응용 프로그램의 응답 속도가 증가 할 수 있습니다.

curl_share_init ()를 사용하여 DNS 캐시 공유를 구현하는 방법?

1 단계 : 컬 공유 핸들을 초기화합니다

먼저, curl_share_init ()는 공유 리소스를 초기화하기 위해 호출됩니다.

 $share = curl_share_init();

2 단계 : DNS 캐시를 공유하도록 공유 핸들을 구성합니다.

공유 핸들이 초기화 된 후 Curl_share_setopt ()를 사용하여 DNS 캐시 공유를 활성화하십시오. curlshopt_share 옵션은 공유 할 리소스 유형을 지정하고 Curl_lock_data_dns 는 DNS 캐시를 공유하는 데 사용됩니다.

 curl_share_setopt($share, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);

3 단계 : 컬 세션을 만들고 공유 핸들을 바인딩합니다.

그런 다음 여러 컬 세션을 만들고 공유 핸들을 바인딩하십시오.

 $ch1 = curl_init('http://m66.net');
curl_setopt($ch1, CURLOPT_SHARE, $share);

$ch2 = curl_init('http://m66.net');
curl_setopt($ch2, CURLOPT_SHARE, $share);

4 단계 : 컬 요청을 실행하십시오

모든 컬 세션을 설정 한 후 요청을 별도로 실행할 수 있습니다.

 curl_exec($ch1);
curl_exec($ch2);

5 단계 : 컬 세션을 닫고 리소스를 공유하십시오

요청이 완료되면 모든 컬 세션과 공유 리소스를 닫으십시오.

 curl_close($ch1);
curl_close($ch2);
curl_share_close($share);

샘플 코드

다음은 curl_share_init () 함수를 사용하여 DNS 캐시 공유를 구현하는 방법을 보여주는 완전한 예입니다.