विंडोज और .NET के साथ मेमेकैच्ड


83

क्या कोई भी पहले से ही विंडोज वातावरण में उत्पादन के उपयोग के लिए ज्ञापन को लागू कर रहा है? क्योंकि मैंने जो बहुत से ब्लॉग पढ़े हैं, यह विशेष रूप से विंडोज़ में मेमेकैक्ड को चलाने के लिए अनुशंसित नहीं है, विशेष रूप से उत्पादन उपयोग के लिए, उदाहरण के लिए विंडोज़ पर मेमकास्ट चलाने के लिए

और एक और बात, जो ग्राहक को याद दिलाता है कि c # और .net 3.5 के साथ उपयोग करना अच्छा है? मैं कई वैकल्पिक रूप में इस तरह मिल गया है memcached प्रदाता @ Codeplex , Beitmemcached , और memcached प्रदाता @ Sourceforge


6
आप 2008 की ब्लॉग पोस्ट की ओर इशारा कर रहे हैं। मेमकाटेड
डस्टिन

1
+1 से डस्टिन। हम नॉर्थस्केल का उपयोग कर रहे हैं और एक अच्छा व्यवस्थापक (वेब) यूआई के साथ काफी विंडोज़ के अनुकूल है
RAM

2
@Dustin और @ram - डस्टिन, का आनंद आपका +1 लेकिन इस सवाल का 2008 में कहा गया था
जस्टिन

3
हे। यही होना चाहिए कि '08 है। उसके लिए माफ़ करना। :)
डस्टिन

जवाबों:


49

आपको विंडोज़ पर मेमेकैच्ड चलाने की आवश्यकता क्यों है? यह उत्पादन के माहौल में एक महंगा मामला है।

यदि आपके कोड को विंडोज वातावरण में चलाने की आवश्यकता है, तो एक विंडोज़ मेम्केड क्लाइंट प्राप्त करें और एक * निक्स आधारित मेम्केड मशीन से बात करें।

सर्वर 2003 या 2008 पर चलने वाले उत्पादन वातावरण में इसका मतलब होगा कि आपको उन सभी बॉक्सों के लिए लाइसेंस प्राप्त है। लिनक्स आपको ओएसएस के सभी लाभ प्रदान करेगा। TCO विंडोज पर मेम्केड के साथ रैखिक रूप से बढ़ेगा

संपादित करें:

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

c: \ Program Files \ memcached> memcached.exe -m 128।

यहां मेमकाटेड अधिकतम 128 एमबी उपयोग के साथ चलता है। आप अपने वेबसर्वर पर सभी मेमोरी लेना नहीं चाहते हैं।

जिस क्षण आपने मेमॉक्लेड करने का निर्णय लिया था, उस पर आपको विचार करना होगा कि मैंने पहले क्या कहा था। इसके अतिरिक्त कुंजी मूल्य संयोजनों में अपने मूल्यों को संपीड़ित करें। वेब सर्वर आमतौर पर बहुत कम सीपीयू (2-3%) का उपभोग करते हैं और सीपीयू उपयोग की तुलना में पूरे नेटवर्क में संपीड़न बहुत अधिक मूल्य लाता है। यदि आप सामान्य संपीड़न के बारे में बहुत चिंतित हैं, तो LZO का प्रयास करें


2
आपके उत्तर के लिए धन्यवाद, यह वही है जो मैं देख रहा हूँ।
फंकी 81

31
TCO विंडोज पर तेजी से कैसे बढ़ता है? लाइसेंसिंग लागत मशीनों की संख्या के साथ रैखिक रूप से बढ़ जाती है। लेकिन जब आप हार्डवेयर की लागत, रैक स्पेस और बिजली, कॉन्ट्रैक्ट कॉन्ट्रैक्ट्स और ऑपरेटर्स की सैलरी लेते हैं, तो विंडोज की लाइसेंसिंग लागत बहुत ही महत्वहीन होती है।
ग्रेग बीच 21

23
सिर्फ चेरियन के तर्क में खंडन जोड़ने के लिए। खिड़कियों में होस्ट करने की इच्छा रखने वाला ड्राइविंग कारक sysadmin विशेषज्ञता हो सकता है। उदाहरण के लिए, जिन छोटी दुकानों में संसाधन नहीं होते हैं, वे * nix एडमिनिस्ट्रेटर को किराए पर लेने के लिए सिर्फ एक यादगार बॉक्स लाने के लिए एक प्लेटफॉर्म पर होस्ट करने से बहुत फायदा हो सकता है, जिसके साथ कंपनी पहले से ही अच्छी तरह से वाकिफ है।
जोएल मार्टिनेज

2
मैं DV इस जवाब के बाद से यह वास्तव में कुछ भी पता नहीं है, लेकिन ओपी ने पूछा कि उन्होंने कहा कि यह विशेष रूप से वह क्या देख रहा था।
क्रिस मैरिसिक

11
डाउनवोट किया गया क्योंकि यह वास्तविक प्रश्न को संबोधित नहीं करता है। यदि यह ओपी की समस्या को हल करता है, तो शायद सवाल फिर से लिखा जाना चाहिए?
श-बीटा

21

मुझे कोई आश्चर्य नहीं हुआ कि यहां अभी तक रेडिस का उल्लेख नहीं किया गया है - यह सबसे अधिक सुविधा संपन्न और सबसे तेज़ में से एक है (110,000 सेट प्रति सेकंड एक एंट्री लेवल लिनक्स बॉक्स पर) कुंजी-मूल्य डेटा स्टोर जिसमें स्ट्रिंग्स के लिए समृद्ध डेटा-संरचना समर्थन है सेट, सूचियाँ, सॉर्ट किए गए सेट और हैश।

हालाँकि विंडोज़ आधिकारिक रूप से समर्थित प्लेटफ़ॉर्म नहीं है, लेकिन यह पूरी तरह से खिड़कियों के नीचे पूरी तरह से चलता है। मेरे पास यहाँ उपलब्ध विंडो (Cygwin का उपयोग करके) है: https://github.com/ServiceStack/ServiceStack.Redis#redis-server-builds-for-windows

यह भी आज उपयोग में लगभग हर प्रोग्रामिंग भाषा के लिए क्लाइंट बाइंडिंग है। मैं किसी भी C # POCO प्रकार, लेन-देन समर्थन और थ्रेड-सुरक्षित ग्राहक प्रबंधकों के लिए देशी API समर्थन के साथ एक समृद्ध ओपन सोर्स C # Redis क्लाइंट को बनाए रखता हूं जो किसी भी IOC में गिराए जाने के लिए तैयार हैं: https://github.com/ServiceStack/ServiceStack। Redis


12

चूँकि वेलोसिटी उस समय मौजूद नहीं थी, इसलिए मैंने कंपनी के लिए विंडोज के लिए एक मेमकाटेड पोर्ट का इस्तेमाल किया, जिसके लिए मैं काम करता हूं, स्किविज़। यह मुख्य रूप से एक ही मशीन पर कई कार्यकर्ता प्रक्रियाओं के लिए एक केंद्रीकृत कैश प्रदान करने के लिए मौजूद है। ई-कॉमर्स साइट पर अब लगभग 18 महीने से ठीक चल रहा है जो मामूली उपयोग (~ 18,500 हिट / दिन) देखता है। मेरे द्वारा उपयोग किया जाने वाला क्लाइंट Enimim iBATIS.NET के लिए कैश प्रदाता के रूप में एकीकृत था । वह क्लाइंट काफी अच्छा काम करता है; मेमेकटेड क्लाइंट के साथ शुरू करने के लिए बहुत जटिल नहीं हैं, या तो।

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

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


वेग अब AppFabric का हिस्सा है
जॉन

7

मुझे नहीं पता कि आप जिस प्रोजेक्ट पर काम कर रहे हैं वह क्या है, लेकिन आप Microsoft वेग प्रोजेक्ट पर एक नज़र डाल सकते हैं : पृष्ठ से

"वेलोसिटी" स्केलेबल, उच्च-प्रदर्शन अनुप्रयोगों के विकास के लिए एक वितरित इन-मेमोरी एप्लिकेशन कैश प्लेटफॉर्म है। "वेग" का उपयोग किसी भी सामान्य भाषा रनटाइम (सीएलआर) ऑब्जेक्ट को कैश करने के लिए किया जा सकता है और सरल एपीआई के माध्यम से पहुंच प्रदान करता है। "वेलोसिटी" के प्रमुख पहलुओं को कैश प्रदर्शन, स्केलैबिली और उपलब्धता वितरित किया जाता है।

मैंने डेमो के एक जोड़े को देखा है और ऐसा लगता है कि यह वास्तव में .net ढांचे के साथ अच्छा एकीकरण है।

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

कहा जा रहा है कि, यदि आप अन्य .net अनुप्रयोगों के लिए एक कैश के रूप में वेग का उपयोग करना चाहते हैं, तो आप उपभोग के लिए वेग डेटा को उजागर करने के लिए अपने एपीआई लिखने के लिए खुद को पा सकते हैं।


जहां तक ​​मुझे पता है, विकास के तहत अभी भी वेग है, इसीलिए मैं अन्य वैकल्पिक खोज करने की कोशिश करता हूं। और यह याद किया जाता है
फंकी 81

जब मैंने थोड़ी देर पढ़ा, वेग स्थापना और रखरखाव के रूप में आसान नहीं है
फंकी 81

3
दीपक ढेर का उपयोग? आप "लिनक्स का उपयोग कर" मतलब नहीं है क्योंकि आप अपाचे, MySQL या PHP की जरूरत नहीं है चलाने के लिए।
गेटकिलर 15

6

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


6

SharedCache पर एक नज़र है । इसका खुला स्रोत, उपयोग करने में आसान और बहुत विश्वसनीय है।

उच्च-प्रदर्शन, वितरित मेमोरी ऑब्जेक्ट कैशिंग सिस्टम, प्रकृति में सामान्य, लेकिन डेटाबेस लोड को कम करके गतिशील वेब और / या अनुप्रयोगों को गति देने का इरादा है। हमें http://www.saredcache.com पर आना न भूलें


3

क्लाइंट एपीआई के साथ समस्या यह है कि आपके पास अभी भी एक और बॉक्स पर मेमेकैच्ड चलने की एक मिसाल है जो आपके द्वारा उल्लेखित है, जैसा कि आपने उल्लेख किया है, LAMP स्टैक का उपयोग करते हुए।

बिल्कुल सच नहीं है। मेमेकैड को चलाने के लिए LAMP (Linux, Apache, MySQL, PHP) स्टैक की आवश्यकता नहीं है। जब तक वेग CTP से बाहर नहीं हो जाता है, तब तक मैं वर्तमान में वेग पर याद रखना पसंद करता हूं। मैंने थोड़ी देर के लिए वेग के साथ खेला है, लेकिन यह बहुत बुरा लगा। मुझे लगता है कि पूरे KISS बात का पालन करें, तुम्हें पता है ... यह सरल रखें। कैशिंग की तुलना में कुछ भी सरल नहीं है ... जाओ (कुंजी) ... रखो (कुंजी, मूल्य) ... नष्ट (कुंजी)।


2

1

मुझे पता है कि मैं यहाँ पार्टी में थोड़ा लेट हूँ, और पहले से ही अच्छे उत्तरों के टन हैं।

हमने बड़ी सफलता के साथ विंडोज सर्वर पर मेम्बेस का उपयोग किया है। यह Memcached के साथ 100% संगत है, और इसमें एक अच्छा GUI इंस्टॉलर और वेब कॉन्फ़िगरेशन सर्वर है। इसे प्रशासित करना बेहद आसान है।

इसमें अन्य NoSQL फीचर्स भी शामिल हैं, जो इस थ्रेड के दायरे से बाहर हैं, लेकिन देखने लायक हैं। उनके पास विकास, परीक्षण और (सीमित) उत्पादन सर्वर के लिए एक मुफ्त लाइसेंस है।

मेम्बेस डाउनलोड

उसी पृष्ठ पर केवल Memcached के लिए एक विंडोज इंस्टाल है, अगर आप मेम्बेस में किसी भी अतिरिक्त सुविधाओं को नहीं चाहते हैं।


1

कृपया इस प्रश्न का हल देखने के लिए नीचे दिए गए लिंक का अनुसरण करें।

मैं विंडोज़ के वातावरण में उत्पादन के उपयोग के लिए मेमकेच को लागू कर सकता हूं।

http://www.codeproject.com/Articles/96698/Implementing-Distributed-Caching-use-Memcached http://www.deanhume.com/Home/BlogPost/object-caching----net-4/37 http : //latebound.blogspot.com/2008/10/using-memcached-from-c.html


0

यदि आप विंडोज पर एक मेमक्लेटेड क्लाइंट चलाने में रुचि रखते हैं तो दो अतिरिक्त ओपन सोर्स सर्वर हैं जो काम कर सकते हैं। दोनों मानक मेमकाटेड सर्वर प्रोटोकॉल को लागू करते हैं और जावा में लिखे जाते हैं इसलिए वे विंडोज पर चलते हैं।

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