2012-03-08 16 views
6

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

मूल रूप से मैं दो बयान है कि मैं सिर्फ जारी करने और (परिणाम के लिए इंतजार करना पड़ पाइप अस्तर लिए एक अच्छे उम्मीदवार की तरह लगता है नहीं करना चाहते हैं यह इस तरह दिखता है:।

Does valueX exist? 
If it does insert valueY 

इसका बहुत सरल लेकिन इतना अब तक जिस तरह से मैं देख रहा हूं, वैल्यूएक्स मौजूद होने के लिए प्रतिक्रिया का इंतजार कर रहा है, और क्योंकि मैं अपने कार्यक्रम के एक अरब से अधिक लूप कर रहा हूं, यह इसे रोकने के लिए पीसता है।

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

उत्तर

6

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

+0

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

+1

आप लुकअप कमांड के बैच को पाइपलाइन कर सकते हैं, परिणामों की प्रतीक्षा कर सकते हैं और फिर कुछ लिखने के लिए पाइपलाइन पाइपलाइन कर सकते हैं। आप इसे एक अलग थ्रेड/प्रक्रिया में कर सकते हैं, क्योंकि परिणाम उपलब्ध होने तक ब्लॉक न करें। – hymloth

+0

अच्छा सुझाव, मैं इसे एक शॉट देने की कोशिश करूंगा। धन्यवाद! –

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