खोज…
टिप्पणियों
मेमकेच का उपयोग करके कैशिंग
मेम्चे एक वितरित वस्तु कैशिंग प्रणाली है और छोटे डेटा को संग्रहीत करने के लिए key-value
का उपयोग करती है। इससे पहले कि आप Memcache
कोड को PHP में कॉल करना शुरू करें, आपको यह सुनिश्चित करना होगा कि यह स्थापित है। कि php में class_exists
पद्धति का उपयोग करके किया जा सकता है। एक बार यह सत्यापित हो जाने के बाद कि मॉड्यूल स्थापित है, तो आप मेमेचे सर्वर आवृत्ति से कनेक्ट करने के साथ शुरू करते हैं।
if (class_exists('Memcache')) {
$cache = new Memcache();
$cache->connect('localhost',11211);
}else {
print "Not connected to cache server";
}
यह मान्य करेगा कि Memcache php- ड्राइवर इंस्टॉल किए गए हैं और स्थानीय होस्ट पर चल रहे memcache सर्वर इंस्टेंस से कनेक्ट हैं।
मेमेचे एक डेमन के रूप में चलता है और इसे मेम्केड कहा जाता है
ऊपर दिए गए उदाहरण में हम केवल एक ही उदाहरण से जुड़े हैं, लेकिन आप कई सर्वरों से भी जुड़ सकते हैं
if (class_exists('Memcache')) {
$cache = new Memcache();
$cache->addServer('192.168.0.100',11211);
$cache->addServer('192.168.0.101',11211);
}
ध्यान दें कि कनेक्ट के विपरीत इस मामले में, तब तक कोई सक्रिय कनेक्शन नहीं होगा जब तक आप किसी मूल्य को संग्रहीत करने या लाने की कोशिश नहीं करते हैं।
कैशिंग में तीन महत्वपूर्ण संचालन हैं जिन्हें लागू करने की आवश्यकता है
- स्टोर डेटा: मेमेकटेड सर्वर में नया डेटा जोड़ें
- डेटा प्राप्त करें: मेमेकटेड सर्वर से डेटा प्राप्त करें
- डेटा हटाएं: पहले से मौजूद डेटा को मेमेकटेड सर्वर से हटाएं
डेटा की दुकान
$cache
या मेमकाटेड क्लास ऑब्जेक्ट में एक set
विधि है जो मूल्य (ttl) को बचाने के लिए एक कुंजी, मूल्य और समय लेता है।
$cache->set($key, $value, 0, $ttl);
यहाँ $ ttl या जीने का समय सेकंड में समय है जिसे आप सर्वर पर जोड़े को स्टोर करने के लिए मेमेक चाहते हैं।
डेटा प्राप्त करें
$cache
या memcached वर्ग वस्तु एक है get
विधि है कि एक प्रमुख में ले जाता है और इसी मान देता है।
$value = $cache->get($key);
मामले में कुंजी के लिए कोई मूल्य निर्धारित नहीं है, यह अशक्त हो जाएगा
डेटा हटाएं
कभी-कभी आपको कुछ कैश वैल्यू को हटाने की आवश्यकता हो सकती है। $cache
या मेमेचे इंस्टेंस में एक delete
विधि है जिसका उपयोग उसी के लिए किया जा सकता है।
$cache->delete($key);
कैशिंग के लिए छोटा परिदृश्य
आइए हम एक साधारण ब्लॉग मानें। इसमें लैंडिंग पृष्ठ पर कई पोस्ट होंगे जो प्रत्येक पेज लोड के साथ डेटाबेस से प्राप्त होते हैं। एसक्यूएल प्रश्नों को कम करने के लिए हम पदों को कैश करने के लिए मेमकेड का उपयोग कर सकते हैं। यहाँ एक बहुत छोटा कार्यान्वयन है
if (class_exists('Memcache')) {
$cache = new Memcache();
$cache->connect('localhost',11211);
if(($data = $cache->get('posts')) != null) {
// Cache hit
// Render from cache
} else {
// Cache miss
// Query database and save results to database
// Assuming $posts is array of posts retrieved from database
$cache->set('posts', $posts,0,$ttl);
}
}else {
die("Error while connecting to cache server");
}
एपीसी कैश का उपयोग कर कैश
वैकल्पिक PHP कैश (APC) PHP के लिए एक मुफ़्त और खुला ओपकोड कैश है। इसका उद्देश्य पीएचपी मध्यवर्ती कोड को कैशिंग और अनुकूलित करने के लिए एक स्वतंत्र, खुला और मजबूत ढांचा प्रदान करना है।
sudo apt-get install php-apc
sudo /etc/init.d/apache2 restart
कैश जोड़ें:
apc_add ($key, $value , $ttl);
$key = unique cache key
$value = cache value
$ttl = Time To Live;
कैश हटाएं:
apc_delete($key);
कैश उदाहरण सेट करें:
if (apc_exists($key)) {
echo "Key exists: ";
echo apc_fetch($key);
} else {
echo "Key does not exist";
apc_add ($key, $value , $ttl);
}
प्रदर्शन :
APC Memcached की तुलना में लगभग 5 गुना तेज है।