सवाल memcache बनाम memcached?


मैं memcached का उपयोग करना चाहता हूँ

http://www.danga.com/memcached/

मैंने इसे स्थापित किया है yum install memcached

लेकिन अब मुझे PHP से कनेक्ट करने की आवश्यकता है, और memcache नामक एक एक्सटेंशन है और एक नाम memcached? अर्घ

http://us3.php.net/manual/en/book.memcache.php
http://us3.php.net/manual/en/book.memcached.php

क्या कोई मुझे सही दिशा में इंगित कर सकता है .. कौन सा काम करने जा रहा है?

साथ ही, क्या स्थानीय के बावजूद मुझे काम करने के लिए किसी भी बंदरगाह को खोलने की ज़रूरत है? इसे चलाने के बाद, मैं टेलनेट 127.0.0.1 11211 कोशिश करता हूं और मुझे कनेक्शन से इनकार कर दिया जाता है।


71
2017-09-08 15:27


मूल


यदि आप अब इस प्रश्न को देख रहे हैं, तो कृपया ध्यान रखें कि स्वीकृत उत्तर है गलत। पूरी तरह से नाम पर आधारित समाधान चुनना खतरनाक है, खासकर जब बेहतर नाम वाला व्यक्ति एक खराब परियोजना है। अधिक जानकारी के लिए कृपया अन्य उत्तरों को देखें। - tylerl
@thanksyo कृपया आपके द्वारा चेक किए गए उत्तर को अनचेक करें। इससे बस देर से आने वाले लोगों को भ्रमित कर दिया जाएगा। इस बीच, मैंने गलत जवाब को कम किया और सुझाव दिया कि अन्य लोग ऐसा ही करते हैं जब तक धन्यवाद इसे अनचेक करने के लिए न हो। - joedevon
भी stackoverflow.com/q/1442411/632951 - Pacerier


जवाब:


संक्षिप्त उत्तर: कोई भी जो आप खोज रहे हैं, लेकिन मेरी पहली पसंद मेमचेचे होगी (आपके द्वारा सूचीबद्ध पहला) विशुद्ध रूप से नामकरण के अपने सही उपयोग के आधार पर।

अब मैं इस निष्कर्ष पर कैसे आया:

कन्वेंशन नामकरण (उन अपरिचित लोगों के लिए) में एक त्वरित पृष्ठभूमिकर्ता है, जो प्रश्न पूछने वाले द्वारा निराशा की व्याख्या करता है: कई * निक्स अनुप्रयोगों के लिए, बैकएंड काम करने वाला टुकड़ा जिसे "डेमन" कहा जाता है (विंडोज़- भूमि), जबकि इंटरफ़ेस या क्लाइंट एप्लिकेशन वह है जिसे आप डिमन को नियंत्रित या एक्सेस करने के लिए उपयोग करते हैं। डिमन को अक्सर "डी" अक्षर के साथ क्लाइंट के समान नाम दिया जाता है। उदाहरण के लिए "imap" एक क्लाइंट होगा जो "imapd" डिमन से जुड़ता है।

इस नामकरण सम्मेलन का स्पष्ट रूप से पालन किया जा रहा है मेम्कैश जब आप पढ़ते हैं memcache मॉड्यूल के लिए परिचय (इस अंश में memcache और memcached के बीच भेद नोटिस):

Memcache मॉड्यूल आसान प्रदान करता है   प्रक्रियात्मक और वस्तु उन्मुख   memcached, अत्यधिक करने के लिए इंटरफ़ेस   प्रभावी कैशिंग डेमॉन, जो था   विशेष रूप से कम करने के लिए डिज़ाइन किया गया   गतिशील वेब में डेटाबेस लोड   अनुप्रयोगों।

मेमकेचे मॉड्यूल भी एक प्रदान करता है   सत्र हैंडलर (memcache)।

Memcached के बारे में अधिक जानकारी कर सकते हैं   पर पाया »    http://www.danga.com/memcached/

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

memcached एक उच्च प्रदर्शन है,   वितरित स्मृति वस्तु कैशिंग   प्रणाली, प्रकृति में सामान्य, लेकिन   तेजी से उपयोग के लिए इरादा है   द्वारा गतिशील वेब अनुप्रयोगों   डेटाबेस लोड को कम करना।

यह एक्सटेंशन libmemcached का उपयोग करता है   पुस्तकालय के लिए एपीआई प्रदान करने के लिए   memcached सर्वर के साथ संचार।   यह एक सत्र हैंडलर भी प्रदान करता है   (Memcached)।

Libmemcached के बारे में जानकारी हो सकती है   पर मिला "    http://tangent.org/552/libmemcached.html

संक्षेप में, दोनों कार्यात्मक रूप से समान हैं, लेकिन उनके पास अलग-अलग लेखक हैं, और किसी को बस दूसरे की तुलना में अधिक उचित रूप से नामित किया गया है।


24
2017-09-08 16:16



क्या प्रोजेक्ट का नाम वास्तव में दूसरे पर एक कार्यान्वयन चुनने का एक उचित कारण है? - David Pashley
डेविड: काफी नहीं ... लेकिन यह निश्चित रूप से मेरे परीक्षण में आखिरी तक एक विशेष कार्यान्वयन छोड़ने का एक कारण है, जिससे प्रभावी रूप से अन्य लोगों को प्राथमिकता दी जा रही है। मैं अब भी सभी कार्यान्वयन उपलब्ध कराने की कोशिश करता हूं, लेकिन लेखक द्वारा सॉफ़्टवेयर के विवरण में तकनीकी त्रुटियों से मुझे आश्चर्य होता है कि सॉफ्टवेयर में तकनीकी त्रुटियां क्या झूठ बोल सकती हैं। मैंने आपकी टिप्पणी को पढ़ा, हालांकि, वास्तविक सॉफ्टवेयर के बारे में, इसलिए मैंने आपको आपके उत्तर के लिए एक अपवित्र भी दिया। :-) - Jessica McKinnon
मैंने कभी भी डीमॉन के लिए memcached में "डी" नहीं सोचा था, लेकिन क्रिया कैश के पिछले भाग का मतलब है। इसके अलावा, आप नए इंटरफ़ेस को "memcache" के रूप में नाम नहीं दे सका क्योंकि उस नाम से पहले से ही एक था। - GetFree
बग की मात्रा और विस्तार सक्रिय रूप से विकसित किया गया है या नहीं इतना अधिक समस्याग्रस्त डी के बारे में गुदा होने से महत्वपूर्ण है। गंभीरता से, आपको इस तरह की किसी चीज़ के कारण आखिरी बार एक एक्सटेंशन का परीक्षण करने के बारे में भी सोचना नहीं चाहिए, यह पूरी तरह से बल्ले से बाहर है - Fake51
एर्म, दोनों नहीं कर रहे हैं कार्यात्मक रूप से वही: memcached उदाहरण के लिए कैस टोकन का समर्थन करता है, memcache ऐसा नहीं करता। यदि आपको उनकी ज़रूरत है, तो आप जानते हैं कि कौन सा (बीमार नाम दिया गया है या नहीं) चुनना है। - Wrikken


आप शायद देखना चाहते हैं PHP क्लाइंट तुलना

लघु संस्करण: वे दोनों काम करेंगे, और ज्यादातर मामलों में कोई भी ठीक काम करेगा।

अन्य मुद्दे के बारे में: हां, आपको करने में सक्षम होना चाहिए telnet 127.0.0.1 11211। बहुत कम फ़ायरवॉल स्थानीयहोस्ट को खुद से संवाद करने से रोक देगा। यदि आप कनेक्ट करने में सक्षम नहीं हैं, तो सत्यापित करें कि memcached वास्तव में कर कर चल रहा है ps auxwww | grep memcached, जो आपको memcached शुरू करने के लिए प्रयुक्त कमांड लाइन तर्क भी दिखाएगा। तर्कों में से एक होना चाहिए -p 11211 या एक और बंदरगाह संख्या। देख man memcached सभी संभावित तर्कों के अर्थ के लिए।


55
2017-09-08 16:08



कुछ समस्या निवारण चरणों को जोड़ने के लिए उपरोक्त। - Jessica McKinnon
यह वास्तव में स्पष्ट जवाब है। - danidacar
@ नेट, विंडोज़ के बराबर क्या है ps auxwww | grep memcached? - Pacerier
@Pacerier: एक नज़र डालें superuser.com/questions/415360/...। प्रोसेस एक्सप्लोरर एक चल रही प्रक्रिया को ढूंढने और इसके कमांड लाइन तर्क देखने का सबसे आसान तरीका है। - Nate
@Pacerier कमांड जांच रहा है कि क्या सर्वर प्रक्रिया चल रही है और यह देख रहा है कि इसे कैसे लागू किया गया था। - Jasen


जैसा कि नाट के लिंक से पता चलता है, दोनों सरल उपयोग के लिए पूरी तरह से अच्छी तरह से काम करते हैं। हालांकि, memcached अधिक सुविधाओं का समर्थन करता है जो आपको memcached से अधिक प्रदर्शन प्राप्त करने की अनुमति देता है। बाइनरी प्रोटोकॉल क्लाइंट और सर्वर के बीच भेजे जाने वाले डेटा की मात्रा को कम कर देता है। मल्टीगेट्स और मल्टीसेट्स आपको एक ही समय में कई आइटम प्राप्त करने / सेट करने की अनुमति देता है। यदि आपको लगता है कि आपको memcache से अधिक oomph की आवश्यकता है, memcached बेहतर मॉड्यूल है। Libmemcached के उपयोग से पता चलता है कि पुस्तकालय स्वयं PHP केवल संस्करण से अधिक अनुकूलित है।

Memcached memcache की तुलना में एक और हालिया मॉड्यूल है, जिसे केवल 8 महीने पहले रिलीज़ किया गया था। यदि आपको PHP के पुराने संस्करण को लक्षित करने की आवश्यकता है, तो आप केवल वास्तव में memcache का उपयोग कर सकते हैं।


27
2017-09-08 17:56



महान स्पष्टीकरण! - john


पुराने, उग्र व्यक्ति को बुलाया जाता है php-memcache क्योंकि यह सबसे उपयुक्त नाम लग रहा था। Digg पर लोगों द्वारा स्वतंत्र रूप से विकसित किया गया नया, बेहतर संस्करण इसके नाम पर रखा गया था php-memcached असंबद्धता के हित में।

जो लोग आपको सलाह देते हैं कि आप पूरी तरह से नाम की शुद्धता पर आधारित एक दूसरे को चुनते हैं, वास्तव में तकनीकी सलाह देने वाला कोई व्यवसाय नहीं है।


21
2017-08-24 04:15





इस सवाल के बारे में, सही जवाब यहां दिया गया है: http://about.digg.com/blog/new-pecl-extension-libmemcached-released


7
2017-08-24 01:17





हाल ही में PHP-memcache का उपयोग करने के बाद, मुझे आपको php-memcached पर इंगित करना होगा।

मेरे सिर के ऊपर से कुछ कारण यहां दिए गए हैं ..

1) कोई getErrorCode () या समकक्ष विधि नहीं है, इसलिए अगर () गलत हो जाता है, तो आपको पता नहीं होगा कि ऐसा इसलिए है क्योंकि memcache में संग्रहीत मान गलत है, या क्या किसी प्रकार का कोई मुद्दा था।

2) लगातार हैशिंग के लिए इसका हैशिंग एल्गोरिदम अन्य कार्यान्वयन से भिन्न होता है, जैसे कि libmemcached से बने कई क्लाइंट पुस्तकालयों। इसका अर्थ यह है कि यदि आप एकाधिक भाषाओं के साथ एक ही मेमकेच क्लस्टर का उपयोग करना चाहते हैं, तो आपको संभावित समस्याएं होंगी जहां आप PHP क्लाइंट के साथ एक मूल्य संग्रहीत करेंगे, और अन्य क्लाइंट इसे नहीं ढूंढ पाएंगे।


6
2017-11-09 21:08





दोनों के पास आज के मुद्दे हैं। पीईसीएल / memcache पुराने और भरोसेमंद है, कुछ अपवादों के साथ जहां यह दिनांकित है। पीईसीएल / memcached 1.x बीटा सबसे अच्छा है। कुछ फ़ंक्शंस संख्यात्मक कुंजी से निपटते नहीं हैं, लगातार कनेक्शन का उपयोग करते समय यह कनेक्शन को रिसाव करता है। कुछ (सभी?) गिटहब में तय किए जा रहे हैं और 2.x में किसी बिंदु पर जारी किए जाएंगे, लेकिन आज नहीं। अधिक विस्तृत समीक्षा के लिए देखें http://brian.moonspot.net/php-memcached-issues


3
2018-06-24 17:26



पीईसीएल / memcached 1.x अब स्थिर है; पीईसीएल / memcache 2.x सीमित है; पीईसीएल / memcache 3.x अत्यधिक अस्थिर है। - aredridel


मैं एक पुस्तक "विशेषज्ञ PHP और MySQL" पर काम कर रहा हूं। मैंने मतभेदों के बारे में बहुत कुछ लिखा है। मैंने जो सिफारिश की वह पीईसीएल / memcached था। # 1 - यह एक पूर्ण-विशेषीकृत अच्छी तरह से प्रदर्शन करने वाली सी लाइब्रेरी # 2 के आसपास लपेटता है - इसे हाल ही में बनाए रखा गया है। # 3 - अधिक विशेषताएं। पीईसीएल / memcache के लिए कोई असंतोष नहीं।


2
2017-12-02 15:21