ចែក​រំលែក​គំនិត​ និង​ចំណេះដឹង​ជាមួយគ្នា

Load Database with Memcached

Posted in ពត៌មាន by ប្រាក់ សុភី on ខែកញ្ញា 25, 2009

memcache module របស់​ PHP ផ្ទុក​នូវ procedural និង​ object oriented interface ដើម្បី Cache data ពី Database វា​ជា​វិធី​មួយ​ដ៏​ប្រ​សើ​ក្នុង​ការ​ជ្រើស​រើស​ memcache  មក​ប្រើ ពី​ព្រោះ​វា​លឿន, ងាយ​ស្រួល​ install និង ប្រើ​ប្រាស់​ ហើយ​វា​ជួយ​សម្រួល​យ៉ាង​​ប្រ​សើ​បំផុត​ក្នុង​ការ​ Load  Database។

Memcache ដំណើការ standalone server ហើយ​វា​ cache object ដោយ​ផ្ទាល់​​ទៅក្នុង​ memory និង​អាច​ទាញ​យក​មក​ប្រើ​វិញ​តាម​តម្រូវការ​របស់​យើង។ សម្រាប់​ព័ត៌​មាន​លំអិត​ មើល​តំណរ​នេះ http://www.danga.com/memcached
មុន​និង​បង្ហាញ់​អំពីការ​ប្រើ​ប្រាស់​វា សូម​អ្នក​រាល់​គ្នា​ចាំទុក​ក្នុង​ចិត្ត​ នៅ​ចំនុច​ពីរ​យ៉ាង​ខាង​ក្រោម​នេះ ៖

  1. Memcach ត្រូវ​បាន​ប្រើ​ ដើម្បី cache ទិន្នន័យ​តូច​ មិន​មែន​ Queries ដែល​ return results រាប់រយ​ រាប់​នោះ​ទេ ជា​ពិសេស​​គេ​ប្រើ​ញឹក​ញាប់​ជាមួយ Repeat Queries ដែល​​ផ្ទុក​ទិន្នន័យ​តូចៗ
  2. អ្នក​ត្រូវ​យក​ចិត្ត​ទុក​ដាក់​ ដល់​រយៈ​ពេល​ក្នុង​ការ​ Cache អ្នក​ប្រកដ​ជាមិន​ចង់​ទាញ​ទិន្នន័យ​ពី Cache គ្រប់​នោះ​ទេ ប្រសិន​បើ​ result of query នោះ​ផ្លាស់​ប្តូ​គ្រប់​នោះ ដូច្នេះ​ហើយ​សូម​ Set Cache Duration អោយ​បាន​ត្រឹម​ត្រូវ។ សូម​មើ​លឧ​ទាហរណ៍​ខាង​ក្រោម

ឧ​ទាហរណ៍ Website របស់​អ្នកមាន​​នាក់​ទស្សនា​ច្រើន​ជាង ១សែន​នាក់​ក្នុង​មួយ​ថ្ងៃ ហើយ​អ្នក​ចង់​បង្ហាញ​ 10 Articles ដែល​មើល​ច្រើន​ជាង​ក្នុង​ថ្ងៃ​នេះ​។

function getTenArticle(){
    $mem = new Memcache;
    /* connect to memcached server */
    $mem->connect('localhost', 11211) or die ("Could not connect");

   if(!$tenArticles = $mem->get('tenArticles')){
      $query = "SELECT * FROM posts ORDER BY num_viewed DESC LIMIT 10 ";
      $tenArticles = mysql_query($query);
      /*set memcache with​value of item with key "tenArticles", compression and
      expire time is 5 min*/
      $mem->set('tenArticles',$tenArticle,MEMCACHE_COMPRESSED, 60*5)or die (Failed to save data at the server");
   }
   return $tenArticles;
}

ដំបូង​ខ្ញុំ​បង្កើត​ $mem ជា Object របស់ Memcache បន្ទាប់​មក connect ទៅ​កាន​ Memcache Server ជាមួយ​ port 11211។
if(!$tenArticles = $mem->get(‘tenArticles’)) ប្រសិន​បើ​មិន​ទាន​បាន​ set memcache ទេ​ វានឹង​ដំណើរ​ការ​ប្លក់​របស់​ if នេះ​រួច​ហើយ​វា​ចាប់
ផ្តើម​ set memcache មើ​មិន​អញ្ចឹង​ទេ​វា​នឹង return $tenArticles តែ​ម្តង់។

Advertisements
Tagged with: ,

ឆ្លើយ​តប

Fill in your details below or click an icon to log in:

ឡូហ្កូ WordPress.com

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី WordPress.com របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

រូប Twitter

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី Twitter របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

រូបថត Facebook

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី Facebook របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

Google+ photo

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី Google+ របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

កំពុង​ភ្ជាប់​ទៅ​កាន់ %s

%d bloggers like this: