Á¦4 Àå Zend_Cache

¸ñÂ÷

4.1. µµÀÔ
4.2. ij½¬ÀÇ ±¸Á¶
4.2.1. Zend_Cache ÆÑÅ丮 ¸Þ¼Òµå
4.2.2. ·¹ÄÚµåÀÇ ÅÂ±× ºÙ¾î¶ó
4.2.3. ij½¬ÀÇ »èÁ¦
4.3. Zend_Cache ÀÇ ÇÁ·ÐÆ®¿£µå
4.3.1. Zend_Cache_Core
4.3.2. Zend_Cache_Frontend_Output
4.3.3. Zend_Cache_Frontend_Function
4.3.4. Zend_Cache_Frontend_Class
4.3.5. Zend_Cache_Frontend_File
4.3.6. Zend_Cache_Frontend_Page
4.4. Zend_Cache ÀÇ ¿¬±¸ ÃÖÁ¾ ´Ü°è
4.4.1. Zend_Cache_Backend_File
4.4.2. Zend_Cache_Backend_Sqlite
4.4.3. Zend_Cache_Backend_Memcached
4.4.4. Zend_Cache_Backend_APC
4.4.5. Zend_Cache_Backend_ZendPlatform

4.1. µµÀÔ

Zend_Cache (Àº)´Â, ÀÓÀÇÀÇ µ¥ÀÌÅ͸¦ ij½¬Çϱâ À§ÇÑ ÀϹÝÀûÀÎ ¼ö¹ýÀ» Á¦°øÇÕ´Ï´Ù.

Zend Framework ¿¡ À־ÀÇ Ä³½¬ 󸮴 ÇÁ·ÐÆ®¿£µå·Î ÇàÇØÁ® ij½¬ ·¹ÄÚµåÀÇ º¸Á¸¿¡´Â ¿¬±¸ ÃÖÁ¾ ´Ü°èÀÇ ¾î´ðÅÍ (File ,Sqlite ,Memcache...) (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.ID ¹× ű׸¦ »ç¿ëÇÑ À¯¿¬ÇÑ ±¸Á¶°¡ ÀÌ¿ëµÇ°í ÀÖ½À´Ï´Ù.À̰͵éÀ» »ç¿ëÇÏ´Â °ÍÀ¸·Î, ij½¬ µ¥ÀÌÅÍÀÇ ÀϺθ¸À» »èÁ¦ÇÑ´Ù ( ¡¸ÁöÁ¤ÇÑ Å±װ¡ ºÙ¿©Á® Àִ ij½¬ ·¹Äڵ带 ¸ðµÎ »èÁ¦ÇÑ´Ù¡¹ µî) ±×·¸´Ù°í ÇÑ °Íµµ °£´ÜÇÏ°Ô ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

ÀÌ ¸ðµâÀÇ Áß½ÉÀÌ µÇ´Â ºÎºÐ (Zend_Cache_Core) (Àº)´Â, Ç¥ÁØÀûÀ¸·Î À¯¿¬ÇÑ °ÍÀÌ µÇ°í ÀÖ½À´Ï´Ù. ¼³Á¤ º¯°æµµ °¡´ÉÇÕ´Ï´Ù.±×·¸Áö¸¸, ƯÁ¤ÀÇ ¸ñÀûÀ» À§Çؼ­´Â, º¸´Ù ÀûÀýÇÑ ½ÇÇà °á°ú¸¦ ¾ò±â À§ÇÑ ÇÁ·ÐÆ®¿£µå Zend_Cache_Core (À»)¸¦ È®ÀåÇÑ´Ù ( ¿¹¸¦ µé¾î Output ,File ,Function ,Class µî) Àϵµ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

·Ê 4.1. Zend_Cache::factory() ¿¡ ÀÇÇÑ ÇÁ·ÐÆ®¿£µåÀÇ Ãëµæ

Zend_Cache::factory() (Àº)´Â, ÀûÀýÇÑ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇØ ±×°ÍµéÀ» ¼­·Î ¿¬°á½Ãŵ´Ï´Ù. ÀÌ ÃÖÃÊÀÇ ¿¹¿¡¼­´Â, ÇÁ·ÐÆ®¿£µå¿¡ Core , ¿¬±¸ ÃÖÁ¾ ´Ü°è¿¡ File (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.


<?php
require_once 'Zend/Cache.php';

$frontendOptions = array(
   
'lifeTime' => 7200//  ij½¬ÀÇ À¯È¿±â°£À» 2  ½Ã°£À¸·Î ÇÕ´Ï´Ù
   
'automaticSerialization' => true
);

$backendOptions = array(
    
'cacheDir' => './tmp/' //  ij½¬ ÆÄÀÏÀ» ¾²´Â µð·ºÅ丮
);

// Zend_Cache_Core  ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÕ´Ï´Ù
$cache Zend_Cache::factory('Core''File'$frontendOptions$backendOptions);

?>

À̰ÍÀ¸·Î ÇÁ·ÐÆ®¿£µå¸¦ ¾òÀ» ¼ö ÀÖ¾ú½À´Ï´Ù.¸ðµç Á¾·ùÀÇ µ¥ÀÌÅ͸¦ º¸Á¸ÇÒ ¼ö ÀÖ½À´Ï´Ù ( ±× ¶§¹®¿¡(À§ÇØ), ½Ã¸®¾Æ¶óÀÌÁ À¯È¿ÇÏ°Ô Çß½À´Ï´Ù) .¿¹¸¦ µé¸é, ¸Å¿ì ½Ã°£ÀÌ °É¸®´Â µ¥ÀÌŸº£À̽º Äí¿¡¸®ÀÇ °á°ú¸¦ ij½¬ÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.ÀÏ´Ü Ä³½¬ÇØ ¹ö¸®¸é, ±×¸®°í´Â µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇÏ´Â ÇÊ¿äÇÔ ¾ø½À´Ï´Ù.ij½¬·ÎºÎÅÍ ÃëµæÇÑ ·¹Äڵ带 ¾È½Ã¸®¾Æ¶óÀÌÁî ÇØ µ¥ÀÌÅ͸¦ ÃëµæÇϸé ÁÁ½À´Ï´Ù.


<?php

// $cache  (Àº)´Â ¹æ±ÝÀüÀÇ ¿¹·Î ÀÛ¼ºÇÑ °ÍÀÔ´Ï´Ù

//  ij½¬°¡ ¹ú½á Á¸ÀçÇÒÁö¸¦ Á¶»çÇÕ´Ï´Ù
if(!$result $cache->load('myresult')) {

    
//  ij½¬°¡ ¹ß°ßµÇÁö ¾Ê¾Ò½À´Ï´Ù.µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇÕ´Ï´Ù
    
    
$db Zend_Db::factory( [...] );
    
    
$result $db->fetchAll('SELECT * FROM huge_table');
    
    
$cache->save($result'myresult');
    
} else {

    
//  ij½¬°¡ ¹ß°ßµÇ¾ú½À´Ï´Ù!  Å« ¼Ò¸®·Î ¿ÜĨ½Ã´Ù
    
echo " À̰ÍÀº ij½¬·ÎºÎÅÍÀÇ µ¥ÀÌÅÍÀÔ´Ï´Ù!nn";
    
}

print_r($result);

?>

·Ê 4.2. Zend_Cache Ãâ·Â ÇÁ·ÐÆ®¿£µå¿¡ ÀÇÇÑ Ãâ·ÂÀÇ Ä³½¬

¿ì¼±, Ãâ·ÂÀ» ij½¬ÇÏ°í ½ÍÀº ºÎºÐÀ» ¾î¶°ÇÑ Á¶°Ç½Ä¿¡¼­ ¡¸¸¶Å© ¾÷¡¹ÇØ, ±× ÀüÈĸ¦ start() ¸Þ¼Òµå ¹× end() ¸Þ¼Òµå·Î µÑ·¯½Ô´Ï´Ù ( À̰ÍÀº ÃÖÃÊÀÇ ¿¹¸¦ ´à¾Æ ÀÖ¾î ij½¬ ó¸®ÀÇ ±âº»ÀÌ µÇ´Â »ý°¢ÀÔ´Ï´Ù) .

³»ºÎ¿¡¼­´Â, Åë»ó ´ë·Î¿¡ Ãâ·ÂÀ» ½Ç½ÃÇÕ´Ï´Ù.Ãâ·Â ³»¿ëÀº, end() ¸Þ¼Òµå¿¡ µµ´ÞÇÒ ¶§±îÁö Âß Ä³½¬µË´Ï´Ù.´ÙÀ½ ¹øÀÇ ½ÇÇà½Ã¿¡´Â, ÀÌ ¼½¼ÇÀÌ ÀÐ¾î ³¯¾Æ°¡ ±× ´ë½Å¿¡ ij½¬·ÎºÎÅÍ ÃëµæÇÑ µ¥ÀÌÅͰ¡ »ç¿ëµË´Ï´Ù ( ij½¬ ·¹Äڵ尡 À¯È¿ÇÑ °ÍÀ¸·Î ÇÑÁ¤ÇÕ´Ï´Ù) .


<?php

$frontendOptions 
= array(
   
'lifeTime' => 30,                  //  ij½¬ÀÇ À¯È¿±â°£Àº 30  ÃÊÀÔ´Ï´Ù
   
'automaticSerialization' => false  //  À̰ÍÀº µðÆúƮġÀÔ´Ï´Ù
);n

$backendOptions 
= array('cacheDir' => './tmp/');

$cache Zend_Cache::factory('Output''File'$frontendOptions$backendOptions);

// start()  ¸Þ¼Òµå¿¡ ÀÏÀÇÀΠID  (À»)¸¦ °Ç³×ÁÝ´Ï´Ù
if(!$cache->start('mypage')) {
    
//  Åë»ó ´ë·Î¿¡ Ãâ·ÂÇÕ´Ï´Ù
    
    
echo 'Hello world! ';
    echo 
' À̰ÍÀº ij½¬µË´Ï´Ù ('.time().') ';
    
    
$cache->end(); //  Ãâ·ÂÀÌ º¸Á¸µÇ¾î ºê¶ó¿ìÀú¿¡ ¼Û½ÅµË´Ï´Ù
}

echo 
' À̰ÍÀº ij½¬µÇÁö ¾Ê½À´Ï´Ù ('.time().').';

?>

time() ÀÇ °á°ú¸¦ µÎ ¹ø Ãâ·ÂÇϰí ÀÖ´Â °Í¿¡ ÁÖ¸ñÇսôÙ. µ¿ÀÛ ¼³¸í ¶§¹®¿¡, ¾î¶°ÇÑ µ¿ÀûÀÎ Ãâ·ÂÀ» °®°í ½Í¾ú½À´Ï´Ù.À̰ÍÀ» ½ÇÇàÇØ, ÇÑÃþ ´õ ¸î ¹øÀΰ¡ ¡¸ÃÖ½ÅÀÇ Á¤º¸·Î °»½Å¡¹ÇØ º¾½Ã´Ù. µÑ°ÀÇ °ªÀÌ ½Ã¿Í ÇÔ²² º¯È­ÇØ ³ª°¡´Âµ¥ ´ëÇϰí, ÃÖÃÊÀÇ ºÐÀÇ °ªÀº º¯È­ÇÏÁö ¾Ê´Â °Í¿¡ ´«Ä¡ äÀ̰ÚÁö¿ä. ¿Ö³ÄÇϸé, ÃÖÃÊÀÇ °ªÀº ij½¬µÈ ¼½¼ÇÀÇ Ãâ·ÂÀ̸ç, ±× ¿ÜÀÇ ³»¿ë°ú ÇÔ²² ij½¬¿¡ º¸Á¸µÇ°í Àֱ⠶§¹®ÀÔ´Ï´Ù. 30 Ãʰæ°úÇϸé ( À¯È¿±â°£À» 30 ÃÊ·Î ¼³Á¤ÇßÀ¸¹Ç·Î) , µÎ °ªÀº ´Ù½Ã ÀÏÄ¡ÇÏ°Ô µË´Ï´Ù.À̰ÍÀº ij½¬ ·¹Äڵ尡 À¯È¿±â°£ Á¶°¢ÀÌ µÇ¾î, Çѹø ´õ ij½¬ ´Ù½Ã ÇØÁ³±â ¶§¹®¿¡ÀÔ´Ï´Ù. ÀÌ ¿¹´Â, ºê¶ó¿ìÀú ȤÀº ÄַܼΠ½ÃÇèÇØ º¸¼¼¿ä.

[
ÁÖÀÇ] ÁÖÀÇ

Zend_Cache (À»)¸¦ »ç¿ëÇÒ ¶§ , ij½¬ ID (save() ¹× start() ±×¸®°í »ç¿ëÇÕ´Ï´Ù) ¿¡ ÃæºÐÇÑ ÁÖÀ§¸¦ ±â¿ïÀ̵µ·Ï ÇսôÙ. À̰ÍÀº, ij½¬ÇÏ·Á°í Çϰí ÀÖ´Â ÀÚ¿ø³»¿¡¼­ ÀÏÀÇÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ¹«°ü°èÇÑ ·¹Äڵ忡 ÀÇÇØ¼­ ij½¬°¡ »èÁ¦µÇ¾î ¹ö¸®°Å³ª ÇÑÃþ ´õ ³ª»Û °Í¿¡´Â ¿ÏÀüÈ÷ ¹«°ü°èÇÑ Àå¼Ò¿¡ Ç¥½ÃµÇ¾î ¹ö¸®°Å³ª¶ó°í ÇÏ´Â ¹®Á¦°¡ ÀϾ´Ï´Ù.