2012-07-27 15 views
7

से कनेक्ट करें मेरे पास एक ऐसा पृष्ठ है जहां कुछ हज़ार उपयोगकर्ता एक ही समय में एक विधि को मार सकते हैं। मेरे पास निम्न कोड है जहां मैं हर बार कनेक्ट करता हूं। चूंकि यह एक अलग memcache सर्वर पर जायेगा क्योंकि इससे मंदी के कारण एक बार कनेक्ट होने और उस कनेक्शन का पुन: उपयोग करने का कोई तरीका होगा? क्या मुझे हर अनुरोध के बाद कनेक्शन बंद करना है?PHP memcache

$primary_connected = $memcache_primary->connect($primary_memcache_server, 11211); 
if($primary_connected){ 
     $data = $memcache_primary->get($key); 
     if ($data != NULL) { 
      return data; 
     } 
} 
else{ 
/////Get data from database 
} 

उत्तर

3

आप PHP memcached वर्ग (अंत पर d, नहीं memcache के साथ) का उपयोग कर रहे हैं तो हां, तो आप एक लगातार कनेक्शन खोल सकते हैं।

आप कन्स्ट्रक्टर को एक सतत आईडी पास कर सकते हैं जो एक सतत कनेक्शन खोल देगा और बाद के उदाहरण जो एक ही निरंतर आईडी का उपयोग करेंगे, उस कनेक्शन का उपयोग करेंगे।

$memcached = new Memcached('method_name_or_persistent_identifier'); 
$memcached->addServer(...); 
// use it 

आशा है कि मदद करता है।

अधिक जानकारी के लिए Memcached::__construct() देखें।

+0

धन्यवाद! मैंने memcache का उपयोग किया और memcached नहीं। मैं अब मेमकैच करने जा रहा हूं क्योंकि वे दृढ़ता कनेक्शन की अनुमति देते हैं। क्या memcache सिर्फ memcache का एक नया संस्करण है? धन्यवाद –

+1

हां, 'मेमकैड' सिर्फ एक नया संस्करण है जो लगातार कनेक्शन, और सीएएस टोकन जैसी अधिक सुविधाओं का समर्थन करता है। अधिक विशिष्टताओं के लिए [यह प्रश्न और स्वीकृत उत्तर] देखें (http://stackoverflow.com/questions/1442411/using-memcache-vs-memcached-with-php)। जहां संभव हो वहां 'Memcached' एक्सटेंशन का उपयोग करें और' memcache' – drew010

+0

धन्यवाद। एक और प्रश्न । अगर मैं http://php.net/manual/en/memcache.pconnect.php का उपयोग करता हूं जो किसी भी समस्या का कारण बनता है? चूंकि मैंने पहले से ही memcache लागू किया है और memcached स्थापित करने के बाद प्रदर्शन अंतर देखना चाहता था। अगर मैं कोई प्रमुख नहीं देखता जिस तरह से मैं उपयोग कर रहा हूं उसके साथ लाभ मैं memcache के साथ जाऊंगा। –

संबंधित मुद्दे