मुझे मेमकेच के बजाय मेमकेच का उपयोग कब करना चाहिए?


321

ऐसा लगता है कि पीएचपी दो memcached नामित पुस्तकालयों है मेम्कैश और memcached । क्या अंतर है और आप कैसे जानते हैं कि किसका उपयोग करना है? क्या कोई पुराना है? ऐसा लगता है कि मेमकाटेड अधिक विधियां प्रदान करता है इसलिए मैं मानूंगा कि इसका सबसे अधिक विकास हुआ है - लेकिन यह बाहरी सी / सी ++ पुस्तकालयों की आवश्यकता भी लगती है इसलिए मुझे यकीन नहीं है कि अगर मैं इसे स्थापित कर सकता हूं।

ऐसा लगता है कि मेमचैच लंबे समय तक रहा है, अतिरिक्त पुस्तकालयों की आवश्यकता नहीं है, और यहां तक ​​कि खिड़कियों के लिए पूर्व संकलित बायनेरिज़ भी हैं! मुझे लगता है कि यह अब के लिए बेहतर विकल्प होगा। हालाँकि, मेमेकैच्ड (सर्वर) के लिए नया होना, मुझे यकीन नहीं है कि मेमकेच्ड (php) में कुछ सुपर महत्वपूर्ण विशेषताएं हैं जो इसे अतिरिक्त परेशानी के लायक बनाती हैं।


1
ZendCon में दोनों की तुलना में एक अच्छा एपिसोड है। ZendCon सत्र एपिसोड 040: मेम्केड: बेहतर मेम्चेच इंटरफ़ेस
जॉन मैगनोलिया

serverfault.com/questions/63383/memcache-vs-memcached की कुछ ही दिनों में नकल , लेकिन यह अधिक विचार और वोट मिला :)
स्टीफनो

जवाबों:


249

हाल ही में स्थिर रूप में जारी किया गया था ग्राहक पुस्तकालय। यह डिग द्वारा उपयोग किया जा रहा है (आंद्रेई ज़मिव्स्की द्वारा डिग के लिए विकसित किया गया था, अब डिग्ग के साथ नहीं है) और पुराने मेम्चेचे क्लाइंट की तुलना में मेमेकैच्ड प्रोटोकॉल के बहुत अधिक लागू करता है। सबसे महत्वपूर्ण विशेषताएं जो मेमेकटेड हैं:

  1. कैस टोकन । इसने मेरे जीवन को बहुत आसान बना दिया और बासी डेटा के लिए एक आसान निवारक प्रणाली है। जब भी आप कैश से कुछ खींचते हैं, तो आप इसके साथ कैस टोकन (एक डबल नंबर) प्राप्त कर सकते हैं। आप अपनी अद्यतन की गई वस्तु को बचाने के लिए उस टोकन का उपयोग कर सकते हैं। यदि आपके थ्रेड को चलाने के दौरान किसी और ने मान अपडेट नहीं किया, तो स्वैप सफल होगा। अन्यथा एक नया कैस टोकन बनाया गया था और आपको डेटा को फिर से लोड करने और नए टोकन के साथ फिर से सहेजने के लिए मजबूर किया जाता है।
  2. कटा ब्रेड के बाद से कॉलबैक के माध्यम से पढ़ें सबसे अच्छी बात है। इसने मेरे कोड को बहुत सरल कर दिया है।
  3. getDelayed () एक अच्छी सुविधा है जो आपके स्क्रिप्ट को सर्वर से वापस आने के लिए प्रतीक्षा करने के समय को कम कर सकती है।
  4. जबकि मेमकाटेड सर्वर बहुत स्थिर माना जाता है, यह सबसे तेज़ नहीं है। आप नए क्लाइंट के साथ ASCII के बजाय बाइनरी प्रोटोकॉल का उपयोग कर सकते हैं।
  5. जब भी आप जटिल डेटा को मेम्केड में सेव करते हैं तो क्लाइंट हमेशा वैल्यू की सीरियलाइजेशन करता है (जो धीमा होता है), लेकिन अब मेम्केड क्लाइंट के साथ आपके पास igbinary का उपयोग करने का विकल्प होता है । अब तक मुझे यह परखने का मौका नहीं मिला है कि यह प्रदर्शन कितना लाभ दे सकता है।

यह सभी बिंदु मेरे लिए सबसे नए क्लाइंट पर स्विच करने के लिए पर्याप्त थे, और आपको बता सकते हैं कि यह एक आकर्षण की तरह काम करता है। वहाँ है कि libmemcached पुस्तकालय पर बाहरी निर्भरता है , लेकिन इसे Ubuntu और मैक OSX पर फिर भी स्थापित करने में कामयाब रहे, इसलिए अब तक कोई समस्या नहीं है।

यदि आप नए पुस्तकालय में अद्यतन करने का निर्णय लेते हैं, तो मेरा सुझाव है कि आप नवीनतम सर्वर संस्करण के लिए अद्यतन करें और साथ ही इसमें कुछ अच्छी विशेषताएं भी हैं। आपको इसे संकलन करने के लिए libevent स्थापित करना होगा , लेकिन Ubuntu पर यह बहुत परेशानी नहीं थी।

मैंने अब तक किसी भी नए ग्राहक को लेने के लिए कोई फ्रेमवर्क नहीं देखा है (हालाँकि मैं उन पर नज़र नहीं रखता), लेकिन मुझे लगता है कि ज़ेंड जल्द ही बोर्ड पर आ जाएगा।

अपडेट करें

Zend फ्रेमवर्क 2 में Memcached के लिए एक एडेप्टर है जो यहां पाया जा सकता है


1
उत्कृष्ट जवाब; इसके अलावा, libmemcached पर बाहरी निर्भरता वास्तव में एक प्लस है, इस मामले में, क्योंकि यह अधिक सक्रिय रूप से विकसित ग्राहकों में से एक है।
मार्क बोलिंगर

माना। Libmemcached बाहरी निर्भरता को एक समस्या नहीं माना जाना चाहिए, जो कि libevent के समान है।
मिहा हरिबिर

1
कैस टोकन की बात सबसे बड़े प्लस की तरह लगती है। दरअसल, इन फीचर्स को देखने से यह लगभग ऐसा लगता है जैसे मेमेकैच्ड एक प्रबंधित डेटा होल्डर की ओर ज्यादा बढ़ रहा है, जैसे डीबी, और टेम्पर्ड कैश की तरह कम।
Xeoncross

यदि आप देख रहे हैं कि आपके पास पहले से ही मेमकास्टेड ( memcachedb.org ) है, जो वास्तव में सिर्फ एक बर्कले डीबी है जो मेम्केडेड प्रोटोकॉल बोलता है।
मिहा हरिबिर

8
यह उत्तर भी मेम्चे और मेम्केड के बीच के अंतर को नहीं बताता है। मेमकेच सिर्फ पुराने संस्करण का ही है?
डैनियल डब्ल्यू

10

विंडोज का उपयोग करते समय, तुलना कम हो जाती है: memcacheकेवल उपलब्ध ग्राहक प्रतीत होता है।


क्या आप हमेशा अपने आप में memcachedएक्सटेंशन नहीं जोड़ सकते?
पचेरियर

1
ऐसा नहीं लगता कि यह वास्तव में सच है। commaster.net/content/installing-memcached-windows
जो लियोनार्ड

@JoeLeonard आपके द्वारा लिंक किए गए पृष्ठ से: " memcachedPHP में इंटरफ़ेस करने के लिए , आपको memcachePHP के लिए एक्सटेंशन इंस्टॉल करने की आवश्यकता है "
rymo

8

यह 2013 है। 2009 की टिप्पणियों के बारे में भूल जाओ। इसी तरह, यदि आप गंभीर ट्रैफ़िक लोड चला रहे हैं, तो इस बात पर भी विचार न करें कि विंडोज़ आधारित मेकचेज़ के साथ मेकअप कैसे करें। जब बहुत बड़े पैमाने (500+ फ्रंट एंड वेब सर्वर) और 20+ बैक एंड डेटाबेस सर्वर और रेप्लिकेंट्स (mysql & mssql मिक्स) के साथ काम करते हैं, तो मेमकास्टेड सर्वर (समूह में 12 सर्वर) का एक फार्म 25K का जवाब देने वाले कई उच्च स्तरीय ओएलटीपी अनुप्रयोगों का समर्थन करता है। ~ 40K mc-> प्रति सेकंड कॉल प्राप्त करें। ये कॉल वे हैं जो किसी डेटाबेस तक पहुंचने के लिए नहीं हैं।

IMHO, मेमेकैच्ड के इस उपयोग ने नए डीबी सर्वर और लाइसेंस के साथ-साथ बड़े व्यावसायिक डिजाइनों के लिए अनुबंध अनुबंध पर $ $ $ $ $ $ $ $ $ $ प्रदान किए।


48
यह php में मेमेकैच प्रोटोकॉल के उन 2 कार्यान्वयनों के बीच अंतर के बारे में सवाल का जवाब कैसे देता है?
Marki555

9
यह एक टिप्पणी होनी चाहिए।
एलिजा लिन

7

मेमकैच्ड एक नया एपीआई है, यह एक सेशन प्रोवाइडर के रूप में मेम्केड भी प्रदान करता है जो आपके सर्वर का फ़ार्म होने पर बहुत अच्छा हो सकता है।

संस्करण के बाद अभी भी वास्तव में कम 0.2 है, लेकिन मैंने दोनों का उपयोग किया है और मुझे बड़ी समस्या का सामना नहीं करना पड़ा, इसलिए मैं नया होने के बाद से याद करूंगा।


1
दोनों वास्तव में सत्र संचालकों के रूप में काम करते हैं, हालांकि मैं कभी भी उनके लिए इसका उपयोग नहीं करना चाहता। us3.php.net/manual/en/memcache.examples-overview.php
Xeoncross

अच्छा मेरी बुरी पकड़, हाँ, यह केवल बड़े सर्वर पर वास्तव में उपयोगी है जब io वास्तव में महत्वपूर्ण हो जाता है, प्लस मेम्चे यह मान्य नहीं करता है कि यह स्मृति को पाने के लिए कुछ ऑब्जेक्ट को नहीं गिराएगा ताकि चीजों को स्केल करना सीख सकें।
रेजज

1
0.2 संस्करण तब से एक स्थिर 1.0.0 संस्करण से आगे निकल गया है।
मिहा हरिबिर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.