मूल्यों की ओर इशारा करते हुए रेडिस स्टोर की। कुंजी किसी भी बाइनरी वैल्यू को उचित आकार तक ले सकती हैं (शॉर्ट एएससीआई स्ट्रिंग्स का उपयोग पठनीयता और डीबगिंग उद्देश्यों के लिए किया जाता है)। मान पांच मूल रेडिस डेटा प्रकारों में से एक हैं।
1. स्ट्रिंग्स - बाइनरी सुरक्षित बाइट्स का एक क्रम 512 एमबी तक
२.शेस - मुख्य मूल्य युग्मों का संग्रह
3. लिस्ट - स्ट्रिंग्स का इन-इंसर्शन-ऑर्डर कलेक्शन
4. सेट - बिना किसी आदेश के साथ अद्वितीय तार का एक संग्रह
5. सेट सेट - उपयोगकर्ता द्वारा निर्धारित स्कोरिंग द्वारा आदेशित अद्वितीय तार का एक संग्रह
स्ट्रिंग्स
रेडिस स्ट्रिंग बाइट्स का एक क्रम है।
रेडिस में स्ट्रिंग्स द्विआधारी सुरक्षित हैं (जिसका अर्थ है कि उनकी कोई ज्ञात लंबाई है जो किसी विशेष समाप्ति वर्ण द्वारा निर्धारित नहीं है), इसलिए आप एक स्ट्रिंग में 512 मेगाबाइट तक कुछ भी स्टोर कर सकते हैं।
स्ट्रिंग्स कैन्यिकल "की-वैल्यू स्टोर" अवधारणा हैं। आपके पास एक मान की ओर इशारा करते हुए एक कुंजी है, जहां कुंजी और मूल्य दोनों पाठ या बाइनरी स्ट्रिंग्स हैं।
स्ट्रिंग्स पर सभी संभव संचालन के लिए, http://redis.io/commands/#string देखें
हैश
एक रेडिस हैश प्रमुख मूल्य जोड़े का एक संग्रह है।
एक Redis हैश कई महत्वपूर्ण मूल्य जोड़े रखता है, जहां प्रत्येक कुंजी और मूल्य एक स्ट्रिंग है। रेडिस हैश सीधे जटिल मूल्यों का समर्थन नहीं करते हैं (मतलब, आपके पास हैश फ़ील्ड की सूची या सेट या किसी अन्य हैश का मान नहीं हो सकता है), लेकिन आप अन्य शीर्ष स्तर के जटिल मानों को इंगित करने के लिए हैश फ़ील्ड का उपयोग कर सकते हैं। एकमात्र विशेष ऑपरेशन जो आप हैश फ़ील्ड मानों पर कर सकते हैं, वह है न्यूमेरिक इंक्रीमेंट / न्यूमेरिक कॉन्टेंट का डीक्रीमेंट।
आप एक रेडिस हैश को दो तरह से सोच सकते हैं: एक प्रत्यक्ष वस्तु प्रतिनिधित्व के रूप में और कई छोटे मूल्यों को कॉम्पैक्ट रूप से संग्रहीत करने के तरीके के रूप में।
प्रत्यक्ष वस्तु प्रतिनिधित्व समझने में सरल हैं। ऑब्जेक्ट्स में एक नाम (हैश की कुंजी) और मूल्यों के साथ आंतरिक कुंजी का संग्रह होता है। नीचे दिए गए उदाहरण को देखें, ठीक है, एक उदाहरण।
हैश का उपयोग करके कई छोटे मूल्यों को संग्रहीत करना एक चतुर रेडिस बड़े पैमाने पर डेटा भंडारण तकनीक है। जब एक हैश के पास कम संख्या में फ़ील्ड (~ 100) होते हैं, तो Redis पूरे हैश के भंडारण और अभिगम क्षमता का अनुकूलन करता है। रेडिस का छोटा हैश स्टोरेज ऑप्टिमाइज़ेशन एक दिलचस्प व्यवहार खड़ा करता है: यह 100 से अधिक हैश के साथ 100 आंतरिक कुंजी और मूल्यों के साथ प्रत्येक को 100 हैश करने के लिए अधिक कुशल है, जिसकी बजाय 10,000 शीर्ष स्तर की स्ट्रिंग मानों की ओर इशारा करते हैं। अपने डेटा स्टोरेज को ऑप्टिमाइज़ करने के लिए Redis hashes का उपयोग इस तरह से ट्रैकिंग के लिए अतिरिक्त प्रोग्रामिंग ओवरहेड की आवश्यकता होती है जहाँ डेटा समाप्त हो जाता है, लेकिन यदि आपका डेटा स्टोरेज प्राइमरी स्ट्रिंग आधारित है, तो आप इस एक अजीब ट्रिक का उपयोग करके बहुत सारे मेमोरी ओवरहेड को बचा सकते हैं।
हैश पर सभी संभव संचालन के लिए, हैश डॉक्स देखें
सूचियाँ
रेडिस सूचियाँ लिंक की गई सूचियों की तरह काम करती हैं।
आप सूची में से किसी एक के सिर या पूंछ से सूचियाँ डाल सकते हैं, हटा सकते हैं, और निकाल सकते हैं।
जब आप सम्मिलित किए गए क्रम में मान बनाए रखने के लिए सूचियों का उपयोग करें। (यदि आपको आवश्यकता हो तो Redis आपको किसी भी मनमानी सूची स्थिति में सम्मिलित करने का विकल्प देता है, लेकिन यदि आप अपने प्रारंभ स्थान से बहुत दूर सम्मिलित करते हैं तो आपका प्रविष्टि प्रदर्शन नीचा हो जाएगा।)
Redis सूचियों को अक्सर निर्माता / उपभोक्ता कतारों के रूप में उपयोग किया जाता है। सूची में आइटम डालें फिर सूची से आइटम पॉप करें। यदि आपके उपभोक्ता सूची में कोई तत्व नहीं रखने की कोशिश करते हैं तो क्या होता है? आप Redis को एक तत्व के प्रकट होने का इंतजार करने के लिए कह सकते हैं और इसे जोड़े जाने पर तुरंत आपको वापस कर सकते हैं। यह Redis को एक वास्तविक समय संदेश कतार / घटना / नौकरी / कार्य / अधिसूचना प्रणाली में बदल देता है।
आप किसी सूची के दोनों सिरों को परमाणु रूप से हटा सकते हैं, जिससे किसी भी सूची को स्टैक या कतार के रूप में माना जा सकता है।
आप प्रत्येक प्रविष्टि के बाद अपनी सूची को एक विशिष्ट आकार में ट्रिम करके निश्चित-लंबाई सूची (कैप्ड संग्रह) बनाए रख सकते हैं।
सूचियों के सभी संभावित कार्यों के लिए, सूची डॉक्स देखें
सेट
रेडिस सेट, वेल, सेट हैं।
एक रेडिस सेट में अद्वितीय अनियंत्रित रेडिस स्ट्रिंग्स होते हैं जहां प्रत्येक स्ट्रिंग केवल एक बार प्रति सेट मौजूद होती है। यदि आप एक सेट में दस बार एक ही तत्व जोड़ते हैं, तो यह केवल एक बार दिखाई देगा। सेट लाज़िली सुनिश्चित करने के लिए महान हैं कि डुप्लिकेट तत्वों को जमा करने और अंतरिक्ष को बर्बाद करने की चिंता किए बिना कम से कम एक बार कुछ मौजूद है। यदि आप पहले से मौजूद हैं, तो जांच के बिना आप जितनी बार चाहें उतनी ही स्ट्रिंग जोड़ सकते हैं।
सेट में सदस्यता की जाँच, प्रविष्टि और सदस्यों को हटाने के लिए सेट तेज़ हैं।
सेट में कुशल सेट ऑपरेशन होते हैं, जैसा कि आप उम्मीद करेंगे। आप एक ही बार में कई सेटों के मिलन, अंतरंगता और अंतर को ले सकते हैं। परिणाम या तो कॉलर को वापस किए जा सकते हैं या बाद में उपयोग के लिए नए सेट में परिणाम संग्रहीत किए जा सकते हैं।
सेट में सदस्यता जांच के लिए निरंतर समय का उपयोग होता है (सूचियों के विपरीत), और रेडिस में सुविधाजनक यादृच्छिक सदस्य को हटाने और लौटने ("सेट से एक यादृच्छिक तत्व पॉप)" या यादृच्छिक सदस्य प्रतिस्थापन के बिना लौट रहा है ("मुझे 30 यादृच्छिक-ईश अद्वितीय उपयोगकर्ता दें) ") या प्रतिस्थापन के साथ (" मुझे 7 कार्ड दें, लेकिन प्रत्येक चयन के बाद, कार्ड वापस डालें ताकि इसे फिर से नमूना लिया जा सके ")।
सेट पर सभी संभावित संचालन के लिए, सेट डॉक्स देखें ।
सॉर्ट किए गए सेट
Redis सॉर्ट किए गए सेट उपयोगकर्ता द्वारा परिभाषित ऑर्डर के साथ सेट होते हैं।
सादगी के लिए, आप अनूठे तत्वों के साथ बाइनरी ट्री के रूप में सेट किए गए सॉर्ट के बारे में सोच सकते हैं। (Redis सॉर्ट किए गए सेट वास्तव में सूचियों को छोड़ते हैं ।) तत्वों का क्रम क्रम प्रत्येक तत्व के स्कोर से परिभाषित होता है।
सॉर्ट किए गए सेट अभी भी सेट हैं। तत्व केवल एक बार एक सेट में दिखाई दे सकते हैं। एक तत्व, विशिष्टता उद्देश्यों के लिए, इसकी स्ट्रिंग सामग्री द्वारा परिभाषित किया गया है। सॉर्टिंग 3 के साथ एलिमेंट "ऐप्पल" डालें, फिर अपने सॉर्ट किए गए सेट में 500 के सॉर्टिंग स्कोर के साथ एक एलीमेंट "ऐप्पल" में 500 के स्कोर के साथ "ऐप्पल" को सम्मिलित करें। सेट केवल डेटा पर आधारित अद्वितीय होते हैं, न कि आधारित (स्कोर, डेटा) जोड़े।
सुनिश्चित करें कि आपका डेटा मॉडल स्ट्रिंग सामग्री पर निर्भर करता है और विशिष्टता के लिए तत्व का स्कोर नहीं। स्कोर को दोहराए जाने की अनुमति है (या यहां तक कि शून्य), लेकिन, एक अंतिम बार, सेट किए गए तत्व केवल एक बार सेट किए गए समय तक मौजूद हो सकते हैं। उदाहरण के लिए, यदि आप प्रत्येक उपयोगकर्ता लॉगिन के इतिहास को सॉर्ट किए गए सेट के रूप में संग्रहीत करने का प्रयास करते हैं, तो स्कोर लॉगिन और उपयोगकर्ता आईडी के मान को बनाते हुए, आप अपने सभी उपयोगकर्ताओं के लिए केवल अंतिम लॉगिन युग का भंडारण करेंगे। आपका सेट आपके उपयोगकर्ताबेस के आकार तक बढ़ जाएगा, न कि आपके उपयोगकर्ताबेस के वांछित आकार * लॉगिन।
तत्वों को स्कोर के साथ आपके सेट में जोड़ा जाता है। आप किसी भी समय किसी भी तत्व के स्कोर को अपडेट कर सकते हैं, बस नए स्कोर के साथ फिर से तत्व जोड़ सकते हैं। स्कोर को फ्लोटिंग पॉइंट डबल्स द्वारा दर्शाया जाता है, इसलिए यदि आवश्यक हो तो आप उच्च परिशुद्धता टाइमस्टैम्प्स की ग्रैन्युलैरिटी को निर्दिष्ट कर सकते हैं। एकाधिक तत्वों का स्कोर समान हो सकता है।
आप कुछ अलग तरीकों से तत्वों को पुनः प्राप्त कर सकते हैं। चूंकि सब कुछ क्रमबद्ध है, आप सबसे कम स्कोर से शुरू होने वाले तत्वों के लिए पूछ सकते हैं। आप उच्चतम स्कोर ("रिवर्स") में शुरू होने वाले तत्वों के लिए पूछ सकते हैं। आप प्राकृतिक या रिवर्स ऑर्डर में उनके सॉर्ट स्कोर द्वारा तत्वों के लिए पूछ सकते हैं।
सॉर्ट किए गए सेट पर सभी संभव संचालन के लिए, सॉर्ट किए गए सेट डॉक्स देखें।