Jeffrey Cross
Jeffrey Cross

Memcached और उच्च प्रदर्शन MySQL

मेमकास्ट एक वितरित वस्तु कैशिंग प्रणाली है जिसे मूल रूप से LiveJournal के प्रदर्शन को बेहतर बनाने के लिए विकसित किया गया था और बाद में इसे कई उच्च-लोड साइटों के लिए स्केलिंग रणनीति के रूप में उपयोग किया गया है। यह एक बड़ी, बहुत तेज़ हैश तालिका के रूप में कार्य करता है जिसे कई सर्वरों में फैलाया जा सकता है और एक साथ कई प्रक्रियाओं से पहुँचा जा सकता है। इसे लगभग किसी भी बैक-एंड कैशिंग की आवश्यकता और उच्च प्रदर्शन वेब अनुप्रयोगों के लिए उपयोग करने के लिए डिज़ाइन किया गया है, यह MySQL जैसे डेटाबेस के लिए एक बहुत अच्छा पूरक है।

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

एक यादगार सर्वर सेट करने के लिए, आप सरल डेमॉन को डाउनलोड करते हैं और इसे कुछ मापदंडों के साथ चलाते हैं। मेम्केड वेब साइट से:

सबसे पहले, आप के रूप में कई स्पेयर मशीनों के रूप में आप के रूप में यादगार डेमॉन शुरू करते हैं। डेमॉन के पास कोई कॉन्फ़िगरेशन फ़ाइल नहीं है, केवल कुछ कमांड लाइन विकल्प हैं, जिनमें से केवल 3 या 4 का आप उपयोग कर सकते हैं:

# ./emcached -d -m 2048 -l 10.0.0.40 -p 11211

यह स्मृति के 2GB का उपयोग करते हुए, डेमॉन के रूप में याद करना शुरू करता है, और आईपी 10.0.0.40, पोर्ट 11211 पर सुन रहा है। क्योंकि एक 32-बिट प्रक्रिया केवल 4 जीबी वर्चुअल मेमोरी (आमतौर पर काफी कम, आपके ऑपरेटिंग सिस्टम के आधार पर) को संबोधित कर सकती है, यदि आपके पास पीएई का उपयोग करके 4-64GB मेमोरी के साथ 32-बिट सर्वर है आप मशीन पर कई प्रक्रियाएं चला सकते हैं, प्रत्येक 2 या 3 जीबी मेमोरी का उपयोग कर सकते हैं।

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

$ मेम्चे = नया मेम्चेचे; $ ज्ञापन-> AddServer (.010 .0.0.40 ', 11211); $ ज्ञापन-> AddServer (.010 .0.0.41 ', 11211);

$ मूल्य = "कैश करने के लिए डेटा";

$ ज्ञापन-> सेट (‘key), $ मूल्य, 60); इको “60 सेकंड के लिए कैशिंग: $ मूल्य
“;

$ पुनर्प्राप्त = $ मेम्चेचे -> प्राप्त (’thekey)); इको “पुनः प्राप्त: $ पुनः प्राप्त
“;

PHP लाइब्रेरी कैश में जाने वाले किसी भी मूल्य को अनुक्रमित करने के गंदे काम का ख्याल रखती है, इसलिए आप सरणियों या पूर्ण डेटा ऑब्जेक्ट को भेज और पुनः प्राप्त कर सकते हैं।

आपके एप्लिकेशन की डेटा लेयर में, डेटाबेस को तुरंत हिट करने के बजाय, अब आप पहले मेमेकैट्स को क्वेरी कर सकते हैं। यदि आइटम पाया जाता है, तो डेटाबेस को हिट करने और डेटा ऑब्जेक्ट को इकट्ठा करने की कोई आवश्यकता नहीं है। यदि कुंजी नहीं मिली है, तो आप डेटाबेस से प्रासंगिक डेटा का चयन करते हैं और कैश में व्युत्पन्न वस्तु को संग्रहीत करते हैं। इसी प्रकार, जब भी आपका डेटा ऑब्जेक्ट बदल जाता है और डेटाबेस में अपडेट किया जाता है, तो आप कैश को अपडेट करते हैं। मान लें कि आपके एपीआई को अच्छी तरह से संरचित किया गया है, केवल कुछ संपादनों को नाटकीय रूप से आपके आवेदन की मापनीयता और प्रदर्शन को बदलने की आवश्यकता है।

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

Memcached और MySQL बेहतर एक साथ का उपयोग करने के लिए Memcached रणनीतियाँ Memcached और MySQL ट्यूटोरियल (पीडीएफ)

शेयर

एक टिप्पणी छोड़