현재 위치: > 최신 기사 목록> 캐시 최적화 성능과 함께 date_sunset ()을 사용하십시오

캐시 최적화 성능과 함께 date_sunset ()을 사용하십시오

M66 2025-05-18

PHP에서 date_sunset () 함수는 특정 날짜 및 장소의 일몰 시간을 쉽게 계산할 수 있습니다. 이 기능은 날씨 웹 사이트, 여행 서비스 웹 사이트 등과 같은 Rizhao와 관련된 정보를 표시 해야하는 웹 사이트에서 특히 중요합니다.

그러나 DATE_SUNSET () 의 각 호출에는 복잡한 천문 계산이 필요합니다. 웹 사이트에 많은 방문이 있고 자주이 기능을 호출하는 경우 서버 성능에 영향을 줄 수 있습니다. 최적화하기 위해 간단한 캐싱 기술을 결합하여 중복 계산을 줄이고 웹 사이트 응답 속도를 크게 향상시킬 수 있습니다.

이 기사에서는 date_sunset ()을 사용하고 캐싱 기술을 결합하여 고성능 일몰 시간 쿼리를 만듭니다.

기본 사용 : DATE_SUNSET () 이해

먼저 기본 예를 살펴 보겠습니다.

 <?php
$date = strtotime('today');
$latitude = 40.7128;  // 뉴욕시 위도
$longitude = -74.0060; // 뉴욕시 경도

$sunset = date_sunset($date, SUNFUNCS_RET_STRING, $latitude, $longitude, 90, date('Z') / 3600);

echo "오늘의 일몰 시간입니다:$sunset";
?>

위의 코드는 19:45 와 같은 뉴욕시에서 오늘의 일몰 시간을 반환합니다.

캐시가 필요한 이유는 무엇입니까?

귀하의 웹 사이트 페이지가 같은 도시 나 같은 날에도 새로 고침 될 때마다 일몰 시간을 다시 계산한다고 가정 해 봅시다.

실제로, 같은 장소와 같은 날의 일몰 시간은 고정되어 있습니다. 따라서 첫 번째 계산 후 결과를 캐시에 저장할 수 있습니다. 다음에 요청하면 캐시가 직접 읽히고 더 이상 반복되는 계산이 아닙니다.

간단한 파일 캐싱을 구현하는 방법은 무엇입니까?

다음 예는 파일 캐싱 사용 방법을 보여줍니다.

 <?php
function getSunsetTime($latitude, $longitude) {
    $cacheDir = __DIR__ . '/cache/';
    if (!is_dir($cacheDir)) {
        mkdir($cacheDir, 0777, true);
    }

    $cacheKey = md5($latitude . '_' . $longitude . '_' . date('Y-m-d')) . '.txt';
    $cacheFile = $cacheDir . $cacheKey;

    if (file_exists($cacheFile)) {
        $sunset = file_get_contents($cacheFile);
    } else {
        $date = strtotime('today');
        $sunset = date_sunset($date, SUNFUNCS_RET_STRING, $latitude, $longitude, 90, date('Z') / 3600);
        file_put_contents($cacheFile, $sunset);
    }

    return $sunset;
}

// 사용의 예
$latitude = 34.0522;  // 로스 앤젤레스 위도
$longitude = -118.2437; // 로스 앤젤레스 경도

$sunset = getSunsetTime($latitude, $longitude);

echo "오늘의 로스 앤젤레스 일몰 시간:$sunset";
?>

이 프로그램의 논리는 다음과 같습니다.

  1. 캐시 디렉토리가 존재하는지 확인하고 존재하지 않으면 작성하십시오.

  2. 위치와 날짜에 따라 캐시 된 키 이름을 생성합니다.

  3. 캐시 파일이 존재하면 직접 읽으십시오.

  4. 존재하지 않으면 Date_Sunset ()을 호출하여 캐시에 계산하고 저장하십시오.

이 방법을 통해 같은 위치는 같은 날에 한 번만 계산되어 서버의 부담을 크게 줄입니다.

경험 향상 : URL 매개 변수와 협력하여 동적 쿼리

사용자가 URL을 통해 다른 도시의 일몰 시간을 동적으로 쿼리하려면 다음을 수행 할 수 있습니다.

 <?php
$latitude = isset($_GET['lat']) ? floatval($_GET['lat']) : 0;
$longitude = isset($_GET['lon']) ? floatval($_GET['lon']) : 0;

if ($latitude === 0 || $longitude === 0) {
    echo "제발 통과하십시오 URL 매개 변수는 위도와 경도를 제공합니다,예를 들어:https://m66.net/sunset.php?lat=40.7128&lon=-74.0060";
    exit;
}

$sunset = getSunsetTime($latitude, $longitude);

echo "위치 쿼리의 일몰 시간은 다음과 같습니다:$sunset";
?>

예를 들어 링크를 방문하십시오.

 https://m66.net/sunset.php?lat=48.8566&lon=2.3522

오늘 파리에서 일몰 시간을 확인할 수 있습니다.

요약

date_sunset () 은 PHP에 내장 된 강력한 도구이지만 최적화없이 자주 사용하는 경우 성능에 쉽게 영향을 줄 수 있습니다. 캐시를 합리적으로 (간단한 파일 캐시조차도) 사용하면 계산 오버 헤드를 크게 줄일 수 있습니다.

성능을 더욱 향상시키기 위해 다음을 고려할 수 있습니다.

  • 파일 캐시를 교체하려면 redis 또는 memcached를 사용하십시오

  • 합리적인 캐시 실패 메커니즘 설정 (예 : 매일 만료 된 캐시 청소 등)

  • 일반 도시의 일몰 데이터를 미리 생성하십시오

캐시의 합리적 사용은 웹 사이트에 빠르고 안정적으로 액세스하는 핵심 단계입니다!