2009-08-09 16 views
8

memcached वेबसाइट पर यह कहता है कि memcached एक वितरित स्मृति कैश है। इसका तात्पर्य है कि यह कई सर्वरों पर चला सकता है और कुछ प्रकार की स्थिरता बनाए रख सकता है। जब मैं Google ऐप इंजन में अनुरोध करता हूं, तो एक उच्च संभावना है कि उसी इकाई समूह में अनुरोध उसी सर्वर द्वारा सर्विस किया जाएगा।क्या Google ऐप इंजन में सर्वर पर memcached शेयर है?

मेरा सवाल यह है कि, मेरे अनुरोध की सेवा करने वाले दो सर्वर थे, क्या इन दो सर्वरों से memcached का विचार समान है? यही है, अन्य सर्वर के लिए memcached आवृत्ति में प्रतिबिंबित एक सर्वर में memcached में रखी चीजें करते हैं, या ये दो पूरी तरह से अलग memcached उदाहरण हैं (प्रत्येक सर्वर के लिए एक)?

विशेष रूप से, मैं चाहता हूं कि प्रत्येक सर्वर वास्तव में memcached का अपना उदाहरण चलाए (अन्य memcached उदाहरणों में कोई प्रतिकृति)। यदि ऐसा है कि इन दोनों memcached उदाहरणों को एक दूसरे को अद्यतन किए गए परिवर्तनों के बारे में अद्यतन करते हैं, तो क्या इसे अक्षम करने का कोई तरीका है?

मैं क्षमा चाहता हूं कि ये प्रश्न बेवकूफ हैं, क्योंकि मैंने अभी इसके बारे में पढ़ना शुरू कर दिया है, लेकिन ये शुरुआती प्रश्न हैं जिन्हें मैंने चलाया है। धन्यवाद।

उत्तर

12

ऐप इंजन वास्तव में memcached का उपयोग नहीं करता है, बल्कि एक एपीआई-संगत पुनर्मूल्यांकन (मुख्य रूप से same guy द्वारा, मेरा मानना ​​है - अपने "20% समय" ;-) में।

कैश किए गए मान किसी भी समय गायब हो सकते हैं (स्पष्ट समाप्ति के माध्यम से, एक सर्वर में एक क्रैश, या स्मृति की कमी के कारण, जिस स्थिति में उन्हें कम से कम हाल ही में उपयोग किए गए आदेश आदि को बेदखल कर दिया जाता है), लेकिन यदि वे ' टी गायब हो जाते हैं जब वे विभिन्न सर्वरों द्वारा देखे जाते हैं।

2

आमतौर पर, memcached सर्वर के बीच डेटा साझा नहीं करता है। एप्लिकेशन सर्वर एक memcached सर्वर चुनने के लिए कुंजी है, और उसके बाद डेटा प्राप्त करने या सेट करने के लिए उस सर्वर के साथ संचार करता है।

4

चयनित मेमकैड सर्वर उस इकाई समूह पर निर्भर नहीं है जिसका आप उपयोग कर रहे हैं (इकाई समूह डेटास्टोर, एक अलग जानवर से अवधारणा है)।

प्रत्येक सर्वर memcached का अपना उदाहरण चलाता है, और प्रत्येक सर्वर आपके द्वारा memcache में संग्रहीत वस्तुओं का प्रतिशत संग्रहीत करेगा। जिस तरह से यह काम करता है वह यह है कि जब आप किसी दिए गए कुंजी के तहत कुछ संग्रहीत करने के लिए memcached API का उपयोग करते हैं, तो एक memcached सर्वर चुना जाता है (कुंजी के आधार पर)।

memcached उदाहरणों के बीच कोई प्रतिकृति नहीं है, यदि उनमें से एक बॉक्स नीचे चला जाता है, तो आप अपने memcached 'डेटा (एन AppEngine में चल रहे memcached उदाहरणों की संख्या 1) खो देते हैं।

0

जो मैं जानता हूँ में आधार पर, वहाँ आप पूरे आवेदन की Memcache उसमें केवल एक ही है, वहाँ अपने कोड उनकी स्मृति से हर एक को चलाने की कई उदाहरण है, और दुनिया भर के कई डेटासंग्रह हो सकता है लेकिन वहाँ केवल है एक समय में एक मेमकैच सर्वर, और ध्यान रखें कि विफलता सेवा के लिए यह अतिसंवेदनशील है, इसके लिए कोई एसएलए भी नहीं है।