2012-01-24 14 views
21

मेरे पास JSON (< 1k) है जो Redis में node.js. के माध्यम से स्टोर करने के लिए है। ऑब्जेक्ट या स्ट्रिंग के रूप में इसे संग्रहीत करने के पेशेवर और विपक्ष क्या हैं? क्या मुझे कोई अन्य विकल्प याद आया? अंततः सभी प्रसंस्करण क्लाइंट पक्ष पर होंगे, इसलिए किसी ऑब्जेक्ट में कनवर्ट करना जरूरी नहीं है।मुझे जेएसओएन को रेडिस में कैसे स्टोर करना चाहिए?

सेट

var images = JSON.parse(data);   // data is already JSON, is this needed? 
callback(images);      // sends result to the user 
r.set('images:' + req.query, images); // saving the object 

प्राप्त

callback(images); 

उत्तर

32

आप redis में JSON स्टोर कर सकते हैं या तो समर्पित कुंजी (या एक सेट/सूची के सदस्य/मूल्य) में एक सादे स्ट्रिंग के रूप में या hash संरचना में। यदि आप दस्तावेज़ों को पर देखते हैं तो मित्रवत हैश कमांड भाग आप देखेंगे कि यह आपको JSON आधारित डेटा में हेरफेर करने के लिए कुछ उपयोगी तरीकों देता है। इस दृष्टिकोण के पेशेवर यह है कि यह आपको मूल वस्तु का केवल एक हिस्सा प्राप्त करने/सेट करने की अनुमति देता है और यह सादे तारों की तुलना में consume less memory भी हो सकता है।

+0

धन्यवाद! ऐसा लगता है कि हैश संरचना का मानना ​​है कि पुनर्प्राप्ति बहुत धीमी है, क्योंकि आपको प्रत्येक क्षेत्र के माध्यम से मूल पुनर्निर्माण के लिए पुन: प्रयास करना होगा। – tofutim

+1

आप पूरे हैश को HGETALL कमांड से पुनर्प्राप्त कर सकते हैं और हालांकि यह समय जटिलता है ओ (एन) मुझे लगता है कि प्रदर्शन केवल बड़ी मात्रा में फ़ील्ड/वैल्यू जोड़े के साथ प्रभावित होगा। – yojimbo87

+1

दंगेदार हैश कमांड के लिए लिंक https://github.com/mranney/node_redis#friendlier-hash-commands – ravindrab

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