홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
PHP Caching to speed up
10년 전
PHP와 SQL서버를 이용한 웹응용프로그램에경우, 가장 고려하는 부분은 쿼리문이겠지요. 접속자와 Speed관계에서, 하드웨어적인 한계속엔 소프트웨어의 처리가 있겠습니다.

일반적으로 대규모 트래픽이 발생하는경우는 페이지에서 다이렉트로 쿼리문을 통해 데이터를 뽑아오지않습니다. 그래픽으로 설명드리고싶지만, 그래픽툴이 없는관계로 간략하게 묘사해보면,

WebClient --->  WebServer ---> SQLServer  (아래로)
WebClient    <----  WebServer Return  <--- SQLServer Return

위와같이, Webserver에서 php파서와같이 코드를 해석한후 SQLServer로 데이터를 요청하고, 정렬하여 html포맷으로 웹클라이언트에게 응답해줍니다.
구현목적에 따라 달라지겠지만, 게시판과같이 실시간으로 출력해줘야하는 형태가 아니라면 비효율적일수있겠죠.

이에, 아래와같이 동적처리를마친 파일을 cache 저장합니다.
5분간은 접속자가 몇명이든지간에, SQL에게 데이터를 묻지않고도 php와 협력하여 파싱을 하지않고도 웹서버는 그냥 캐싱된파일을 읽어와 출력해주면 되겠죠.
서버부하와 속도는 당연히 빨라질것입니다.

쉽게 말하면, 파일로 저장해두고 5분에 한번 갱신해주는겁니다.
1분 접속자가 1천명이라치면  5천번의 이벤트가 1번으로 주는거겠죠.


(?

   $reqfilename = "index";
   $cachefile = "cache/".$reqfilename.".xanadu";
   $cachetime = 5 * 60; //5 minutes
   // Serve from the cache if it is younger than $cachetime
   if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) {
     include($cachefile);
     echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." -->\n";
     exit;
   }


   // start the output buffer
   ob_start();
?)


Here is Page-Content home

(?
   $fp = fopen($cachefile, 'w'); // open the cache file for writing
   fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file
   fclose($fp); // close the file

   // Send the output to the browser
   ob_end_flush();
?)

추천추천 : 440 추천 목록
번호 제목
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
3,008
 윈도우10 시스템 파일 및 Dism 검사
3,007
 텍스트 줄바꿈, 글자자르기 CSS
3,006
 jQuery Mobile에서 유용한 코드 10가지.
3,005
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,004
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,003
 [jQuery] jQuery Quick API
3,002
 [ transition ] 링크 hover 색상 변화 속도 조절
3,001
 PHP 5.3.0 에서 사라진 함수들 대체
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.