आपके पास मूल रूप से दो कार्यनीतियां हैं:
-
आप अपनी जटिल वस्तुओं को क्रमबद्ध कर सकते हैं और उन्हें तार के रूप में संग्रहीत कर सकते हैं। हम क्रमांकन प्रारूप के लिए json या msgpack का सुझाव देते हैं। अधिकांश क्लाइंट-साइड भाषाओं से हेरफेर करना काफी आसान है। यदि सर्वर-साइड एक्सेस की आवश्यकता है, तो सर्वर-साइड Lua स्क्रिप्ट ऐसी वस्तुओं को आसानी से एन्कोड/डीकोड कर सकती है क्योंकि Redis को Lua के लिए msgpack और json समर्थन के साथ संकलित किया गया है।
-
आप अपनी वस्तुओं को विभिन्न कुंजियों में विभाजित कर सकते हैं। इस आईडी में उपयोगकर्ता:आईडी और एक जटिल डेटा संरचना को संग्रहीत करने के बजाय, आप कई कुंजियों को संग्रहीत कर सकते हैं जैसे कि उपयोगकर्ता:आईडी, उपयोगकर्ता:आईडी:पता_सूची, उपयोगकर्ता:आईडी:दस्तावेज़_सूची, आदि ... यदि आपको परमाणुता की आवश्यकता है, बहु / पाइपलाइनिंग EXEC ब्लॉक का उपयोग डेटा स्थिरता की गारंटी और राउंडट्रिप को एकत्रित करने के लिए किया जा सकता है।
इस उत्तर में एक सरल उदाहरण देखें:
क्या LPUSH कमांड उस रिकॉर्ड पर काम करेगा जिसे JSON से इनिशियलाइज़ किया गया था?
अंत में, Redis एक दस्तावेज़ उन्मुख डेटाबेस नहीं है। यदि आपके पास वास्तव में बहुत सारे जटिल दस्तावेज़ हैं, तो शायद आपको MongoDB, ArangoDB, CouchDB, Couchbase, आदि जैसे समाधानों द्वारा बेहतर सेवा दी जा सकती है ...