4.2. ij½¬ÀÇ ±¸Á¶

Zend_Cache ¿¡´Â,3 °³ÀÇ Æ÷ÀÎÆ®°¡ ÀÖ½À´Ï´Ù.¿ì¼± óÀ½Àº ÀÏÀÇÀÎ ID ( ¹®ÀÚ¿­) ±×¸®°í, À̰Ϳ¡ ÀÇÇØ¼­ ij½¬ ·¹Äڵ带 ½Äº°ÇÕ´Ï´Ù.µÎ¹øÂ°´Â, ¿¹¿¡ Æ÷ÇԵȴ٠'lifeTime' Áö½Ã¹®ÀÔ´Ï´Ù.À̰ÍÀº, ij½¬µÈ ÀÚ¿øÀÇ ¡¸À¯È¿±âÇÑ¡¹À» Á¤ÀÇÇÏ´Â °ÍÀÔ´Ï´Ù.3¹øÂ°ÀÇ Æ÷ÀÎÆ®°¡ µÇ´Â °ÍÀÌ Á¶°ÇºÎÀÇ ½ÇÇà 󸮷Î, ºÒÇÊ¿äÇÑ Äڵ带 ¿ÏÀüÇÏ°Ô ÀÐ¾î ³¯¸®´Â °ÍÀ¸·Î ó¸® ¼Óµµ¸¦ Çâ»ó½ÃŰ°Ô µË´Ï´Ù. ÇÁ·ÐÆ®¿£µåÀÇ ÁÖ°¡ µÇ´Â ÇÔ¼ö ( ¿¹¸¦ µé¸é Zend_Cache_Core::get()) (Àº)´Â, ij½¬°¡ È÷Æ® ÇÏÁö ¾Ê¾Ò´ø °æ¿ì¿¡´Â Ç×»ó false (À»)¸¦ µ¹·ÁÁÖµµ·Ï ¼³°èµÇ°í ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡, ij½¬ÇÏ°í ½Í´Ù ( ±×¸®°í ÀÐ¾î ³¯¸®°í ½Í´Ù) ºÎºÐÀ» if(){ ... } ¹®ÀåÀ¸·Î µÑ·¯½Ò ¶§¿¡, Á¶°Ç½ÄÀ¸·Î¼­ Zend_Cache ÀÇ ¸Þ¼Òµå ÀÚ½ÅÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ ºí·ÏÀÇ ÃÖÈÄ¿¡¼­´Â, Ãâ·Â ³»¿ëÀ» ( ¿¹¸¦ µé¸é Zend_Cache_Core::save() µî¿¡¼­) º¸Á¸ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

[
ÁÖÀÇ] ÁÖÀÇ

Á¶°ÇºÎÀÇ ½ÇÇà 󸮸¦ ¹Ýµå½Ã ±â¼úÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ÇÁ·ÐÆ®¿£µåÀÇ Á¾·ù¿¡ µû¶ó¼­´Â ( ¿¹¸¦ µé¸é Function µî) , ¸ðµç ³í¸®°¡ ÇÁ·ÐÆ®¿£µå Áß(¾È)¿¡¼­ ½ÇÀåµÇ°í ÀÖ½À´Ï´Ù.

[
ÁÖÀÇ] ÁÖÀÇ

'Cache hit ( ij½¬¿¡ È÷Æ® Çß´Ù)' (ÀÌ)¶õ, ij½¬ ·¹Äڵ尡 ¹ß°ßµÇ¾î, ÇÑÆí ±× ·¹Äڵ尡 'fresh ( ½Å¼±)' ( ¹Ù²Ù¾î ¸»Çϸé, ¾ÆÁ÷ À¯È¿±â°£ÀÌ ²÷¾îÁöÁö ¾Ê¾Ò´Ù) »óÅÂÀÎ °ÍÀ» ³ªÅ¸³»´Â ¸»ÀÔ´Ï´Ù.'Cache miss ( ij½¬°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´Ù)' (Àº)´Â ±× Á¤¹Ý´ëÀÔ´Ï´Ù.ij½¬°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì´Â, µ¥ÀÌÅ͸¦ ( Åë»ó´ë·Î) ÀÛ¼ºÇØ, ±×°ÍÀ» ij½¬ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÇÑÆí, ij½¬¿¡ È÷Æ® ÇßÀ» °æ¿ì´Â, ¿¬±¸ ÃÖÁ¾ ´Ü°è°¡ ÀÚµ¿ÀûÀ¸·Î ij½¬ ·¹Äڵ带 ÃëµæÇØ ÁÝ´Ï´Ù.

4.2.1. Zend_Cache ÆÑÅ丮 ¸Þ¼Òµå

»ç¿ë °¡´ÉÇÑ Zend_Cache ÇÁ·ÐÆ®¿£µåÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ», ÀÌÇÏÀÇ ¿¹·Î ³ªÅ¸³» º¸ÀÔ´Ï´Ù.


<?php
        
# Zend_Cache  ÆÑÅ丮¸¦ ÀоîµéÀÔ´Ï´Ù
require 'Zend/Cache.php'

#  ¿¬±¸ ÃÖÁ¾ ´Ü°è¸¦ ¼±ÅÃÇÕ´Ï´Ù ( ¿¹¸¦ µé¸é 'File'  (ÀÌ)³ª 'Sqlite'...)
$backendName '[...]';

#  ÇÁ·ÐÆ®¿£µå¸¦ ¼±ÅÃÇÕ´Ï´Ù ( ¿¹¸¦ µé¸é 'Core' ,'Output' ,'Page'...)
$frontendName '[...]';

#  ¼±ÅÃÇÑ ÇÁ·ÐÆ®¿£µå¿ëÀÇ ¿É¼ÇÀ» ¹è¿­·Î ¼³Á¤ÇÕ´Ï´Ù
$frontendOptions = array([...]);

#  ¼±ÅÃÇÑ ¿¬±¸ ÃÖÁ¾ ´Ü°è¿ëÀÇ ¿É¼ÇÀ» ¹è¿­·Î ¼³Á¤ÇÕ´Ï´Ù
$backendOptions = array([...]);

#  ÀνºÅϽº¸¦ ÀÛ¼ºÇÕ´Ï´Ù
# ( ¹°·Ð, ¸¶Áö¸· 2  °³ÀÇ Àμö´Â Çʼö°¡ ¾Æ´Õ´Ï´Ù)
$cache Zend_Cache::factory($frontendName$backendName$frontendOptions$backendOptions);

?>

ÀÌ ÀÌÈÄÀÇ ¹®¼­¿¡¼­´Â,$cache ÀÇ ³»¿ëÀÌ À¯È¿ÇÑ ÇÁ·ÐÆ®¿£µå°¡ µÇ¾î ÀÖ´Â °ÍÀ¸·Î ÇÕ´Ï´Ù.¶Ç, ¼±ÅÃÇÑ ¿¬±¸ ÃÖÁ¾ ´Ü°è¿¡ ÆÄ¶ó¹ÌÅ͸¦ °Ç³×ÁÖ´Â ¹æ¹ýÀº ÀÌÇØ µÇ¾î ÀÖ´Â °ÍÀ¸·Î ÇÕ´Ï´Ù.

[
ÁÖÀÇ] ÁÖÀÇ

Ç×»ó Zend_Cache::factory() (À»)¸¦ »ç¿ëÇØ ÇÁ·ÐÆ®¿£µåÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇϵµ·Ï ÇØ ÁÖ¼¼¿ä.ÇÁ·ÐÆ®¿£µå³ª ¿¬±¸ ÃÖÁ¾ ´Ü°è¸¦ Àڱ⠺δãÀ¸·Î ÀÛ¼ºÇÏ·Á°í ÇØµµ, ±â´ë ´ë·Î´Â µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

4.2.2. ·¹ÄÚµåÀÇ ÅÂ±× ºÙ¾î¶ó

ű״Â, ij½¬ ·¹Äڵ带 ºÐ·ùÇϱâ À§ÇÑ ±¸Á¶ÀÔ´Ï´Ù. save() ¸Þ¼Òµå·Î ij½¬¸¦ º¸Á¸ÇÒ ¶§¿¡, Àû¿ëÇϴ ű׸¦ ¹è¿­·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.À̰ÍÀ» »ç¿ëÇϸé, ÁöÁ¤ÇÑ Å±װ¡ ¼³Á¤µÇ¾î Àִ ij½¬ ·¹Äڵ常À» »èÁ¦ÇÑ´Ù°í Çß´ø °ÍÀÌ °¡´ÉÇØÁý´Ï´Ù.


<?php
             
$cache
->save($huge_data'myUniqueID', array('tagA''tagB''tagC'));
            
?>
[
ÁÖÀÇ] ÁÖÀÇ

save() ¸Þ¼Òµå¿¡´Â, ¿É¼ÇÀÇ Á¦4 Àμö $specificLifeTime (À»)¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °Í¿¡ ÁÖÀÇÇսô٠(false Àܸ̿¦ ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î, ÀÌ Ä³½¬ ·¹ÄÚµåÀÇ À¯È¿±â°£À» ƯÁ¤ÀÇ °ªÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù) .

4.2.3. ij½¬ÀÇ »èÁ¦

ƯÁ¤ÀÇ Ä³½¬ ID (À»)¸¦ »èÁ¦/ ¹«È¿È­ÇÏ·Á¸é ,remove() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.


<?php 
             
$cache
->remove(' »èÁ¦ÇÑ´ÙID');
            
?>

1ȸÀÇ Á¶ÀÛÀ¸·Î º¹¼öÀÇ Ä³½¬ ID (À»)¸¦ »èÁ¦/ ¹«È¿È­ÇÏ·Á¸é ,clean() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.¿¹¸¦ µé¸é, ¸ðµç ij½¬ ·¹Äڵ带 »èÁ¦ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.


<?php 

//  ¸ðµç ·¹Äڵ带 »èÁ¦ÇÕ´Ï´Ù
$cache->clean(Zend_Cache::CLEANING_MODE_ALL);

//  À¯È¿±â°£ Á¶°¢ÀÇ ·¹Äڵ常 »èÁ¦ÇÕ´Ï´Ù
$cache->clean(Zend_Cache::CLEANING_MODE_OLD);
            
?>

ÅÂ±× 'tagA' ¹× 'tagC' ¿¡ ÇØ´çÇϴ ij½¬ ¿£Æ®¸®¸¦ »èÁ¦ÇÏ·Á¸é , ÀÌ¿Í °°ÀÌ ÇÕ´Ï´Ù.


<?php 
             
$cache
->clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array('tagA''tagC'));
            
?>

»èÁ¦ ¸ðµå·Î¼­ ÁöÁ¤ °¡´ÉÇÑ °ªÀº CLEANING_MODE_ALL ,CLEANING_MODE_OLD , CLEANING_MODE_MATCHING_TAG ¹× CLEANING_MODE_NOT_MATCHING_TAG ÀÔ´Ï´Ù.ÈÄÀÚ´Â °ªÀº, ±× À̸§ÀÌ ³ªÅ¸³» º¸ÀÌ´Â ´ë·Î, ű×ÀÇ ¹è¿­°ú Á¶ÇÕÇØ »ç¿ëÇÕ´Ï´Ù.