मैं हैश को ~ 100k रिकॉर्ड प्रति हैश के साथ स्टोर करने के लिए रेडिस का उपयोग कर रहा हूं। मैं किसी दिए गए हैश के भीतर रिकॉर्डिंग (फ़ेसटिंग) रिकॉर्ड को कार्यान्वित करना चाहता हूं। ध्यान दें कि हैश एंट्री एन फिल्टर से संबंधित हो सकती है।फ़िल्टरिंग रेडिस हैश प्रविष्टियां
- फिल्टर प्रति एक क्रमबद्ध सेट को लागू करें:
this और this पढ़ने के बाद ऐसा लगता है कि मैं चाहिए लग रहा है। एसईटी के भीतर मूल्य एक हैश के भीतर कुंजी के अनुरूप है।
- दिए गए फ़िल्टर एसईटी से हैश कुंजी पुनर्प्राप्त करें।
- एक बार मेरे पास एसईटी से हैश कुंजी हैश से संबंधित प्रविष्टियां प्राप्त करती है। यह मुझे फ़िल्टर से संबंधित सभी प्रविष्टियां देनी चाहिए।
सबसे पहले उपरोक्त दृष्टिकोण उच्च स्तर पर सही है?
दृष्टिकोण मानना ठीक है कि मुझे याद आ रही है कि हैश प्रविष्टियों को पुनर्प्राप्त करने के लिए सबसे प्रभावी कार्यान्वयन क्या है? क्या मैं सोचने में सही हूं कि मेरे पास हैश कुंजी है तो मुझे प्रत्येक HASH कुंजी से गुजरने वाले एकाधिक HGETALL आदेशों को कतारबद्ध करने के लिए एक PIPELINE का उपयोग करना चाहिए? क्या कोई बेहतर दृष्टिकोण है?
एक पीआईपीईलाइन का उपयोग करने के बारे में मेरी चिंता यह है कि मुझे विश्वास है कि यह आदेश देने के दौरान अन्य सभी ग्राहकों को अवरुद्ध कर देगा। मैं फ़िल्टर किए गए परिणामों को प्रति पृष्ठ 500 परिणामों के साथ पेजिंग कर दूंगा। फ़िल्टरिंग करने वाले कई ब्राउज़र आधारित क्लाइंट्स के साथ, एसईटी और एचएएसएचएस को पॉप्युलेट करने वाली बैक एंड प्रक्रियाओं का उल्लेख न करने के लिए ऐसा लगता है कि यदि पीआईपीईलाइन ब्लॉक करता है तो बहुत सारी विवादों की संभावना है। क्या कोई इस पर एक दृश्य प्रदान कर सकता है?
यदि यह मदद करता है तो मैं 2.2.4 रेडिस का उपयोग कर रहा हूं, वेब क्लाइंट के लिए predis और बैक एंड के लिए servicestack।
धन्यवाद, पॉल
मैं इसी तरह के फ़िल्टर करने की कोशिश कर रहा हूं, लेकिन मेरे पास फ़िल्टर करने के लिए बड़े सेट (1 मिलियन रिकॉर्ड) हैं। क्या आपको रेडिस में फ़िल्टर करने का कोई बेहतर तरीका मिला? –