Load Database with Memcached
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 ។
មុននិងបង្ហាញ់អំពីការប្រើប្រាស់វា សូមអ្នករាល់គ្នាចាំទុកក្នុងចិត្ត នៅចំនុចពីរយ៉ាងខាងក្រោមនេះ ៖
- Memcach ត្រូវបានប្រើ ដើម្បី cache ទិន្នន័យតូច មិនមែន Queries ដែល return results រាប់រយ រាប់នោះទេ ជាពិសេសគេប្រើញឹកញាប់ជាមួយ Repeat Queries ដែលផ្ទុកទិន្នន័យតូចៗ
- អ្នកត្រូវយកចិត្តទុកដាក់ ដល់រយៈពេលក្នុងការ 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 withvalue 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 តែម្តង់។
leave a comment