2012-06-07 12 views
5

में एकाधिक कैश IHCache से मेमकैच पर कैश माइग्रेट कर रहा हूं। केवल 1 मेमकैच किए गए उदाहरण के साथ, क्या कई कैश (जैसे एह कैश) में एक तरीका है?Memcached

उदाहरण के लिए, मैं "उपयोगकर्ता" कैश, एक "उत्पाद" कैश आदि चाहता हूं ... इसका मुख्य कारण प्रत्येक कैश को अलग-अलग मॉनिटर और कॉन्फ़िगर करने में सक्षम होना चाहिए, और उन्हें साफ़ करने में सक्षम होना चाहिए अलग से भी।

+0

आप किस मेमकैड क्लाइंट का उपयोग कर रहे हैं? – cheeken

+0

xmemcached (जावा) –

उत्तर

4

आमतौर पर, इस प्रकार का व्यवहार नेमस्पेसिंग के माध्यम से memcached में प्राप्त किया जाता है। एक एकल memcached उदाहरण के भीतर, एक एकाधिक नामस्थान बनाए रखता है, जिनमें से प्रत्येक एक अलग कैश का प्रतिनिधित्व करता है। हालांकि, memcached नामस्थानों का मूल रूप से समर्थन नहीं करता है - इसके बजाय, memcached नामस्थानों को नामस्थान पहचानकर्ता के साथ उपसर्ग कुंजी द्वारा अनुकरण किया जाता है (उदा।, memcachedClient.get('products.top10'))। कुछ memcached क्लाइंट, जैसे the Python GAE memcached client, आपके लिए यह व्यवहार अमूर्त है। हालांकि, xmemcached नहीं है, जहां तक ​​मैं कह सकता हूं।

आपको दो विकल्पों के साथ छोड़ दिया गया है।

  • प्रत्येक कुंजी के साथ मैन्युअल रूप से उपसर्ग करें।
  • XMemcachedClient के चारों ओर एक पतली रैपर लिखें जिसमें दो बदलाव हैं: इसमें String namespace सदस्य है जो उपसर्ग मान के रूप में कार्य करता है, और यह उपसर्ग लागू करने के लिए get0() ओवरराइड करता है। यह थोड़ा खतरनाक है क्योंकि यह वर्तमान XMemcached कार्यान्वयन पर निर्भर करता है।
+0

धन्यवाद, मैं वास्तव में XMemcachedClient के आसपास कैश नेमस्पेस को संभालने के लिए कस्टम सेवा लिखूंगा (कक्षा को ओवरराइड नहीं करना, बल्कि "फेकाडे" डिज़ाइन पैटर्न) –

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