2011-08-22 17 views
6

मेरी वर्तमान प्रोजेक्ट में, मैं कुंजी-मूल्य जोड़े को स्टोर करने के लिए मेमकैच का उपयोग कर रहा हूं, लेकिन चूंकि संचार मेरी प्रक्रिया के बीच सॉकेट पर होता है और मेमकैच बड़ी लेटेंसी का कारण बनता है। हम memcache के साथ गए क्योंकि हमें बड़ी मात्रा में कुंजी-मूल्य जोड़ों को संग्रहित करने की आवश्यकता थी। लेकिन अब मैं अपनी प्रक्रिया में शब्दकोश को वैश्विक डेटास्ट्रक्चर के रूप में स्टोर करना चाहता हूं। क्या यह एक अच्छी चीज है? क्योंकि शब्दकोश प्रक्रिया स्थान अंतरिक्ष में संग्रहीत किया जाएगा। सुझाव कृपया .... memcached का उपयोग करने केमेमकेचे और पायथन शब्दकोश के बीच अंतर

उत्तर

8

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

1

यदि आप डेटा इतना बड़ा नहीं है, तो आप अपने पायथन शब्दकोश को cpickle.dump या marshal.dump के साथ फ़ाइलों में डंप कर सकते हैं और इसे cpickle.load या marshal.load के साथ फ़ाइल से पुनः लोड कर सकते हैं, और यदि आपको चिंता करने की आवश्यकता है डिस्कस्पेस के बारे में, आप फ़ाइल पढ़ने/पुनः लिखने के दौरान bz2 या gzip compress/decompress का उपयोग कर सकते हैं।

6

मैंने memcached "about" पृष्ठ पर a thorough answer लिखा था। मैंने चित्र और सबकुछ खींचा।

सारांश में: यदि आपके पास एक से अधिक प्रक्रियाएं हैं, तो शब्दकोश आपकी मदद नहीं करेगा। यदि आपके पास एक से अधिक प्रक्रिया/कंप्यूटर हैं, तो आप बहुत सारी मेमोरी जल रहे हैं जिन्हें बहुत से तरीकों से पुन: उपयोग किया जा सकता है जो आपको बहुत सारा पैसा बचाता है और आपको अधिक बड़ी चीजें प्राप्त करता है।

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