इस ट्यूटोरियल में, हम सीखेंगे कि रेडिस डेटास्टोर में एक कुंजी पर संग्रहीत सूची मान के पहले तत्व को कैसे निकालें और वापस करें। इसके लिए हम रेडिस का उपयोग करेंगे LPOP और बीएलपीओपी आदेश।
एलपीओपी कमांड
इस कमांड का उपयोग निर्दिष्ट कुंजी पर संग्रहीत सूची मान के पहले तत्व को हटाने और वापस करने के लिए किया जाता है। यदि कोई कुंजी मौजूद नहीं है और एक त्रुटि वापस आती है, यदि कुंजी मौजूद है, लेकिन कुंजी पर संग्रहीत मान सूची डेटाटाइप का नहीं है, तो शून्य वापस कर दिया जाता है। रेडिस एलपीओपी कमांड का सिंटैक्स इस प्रकार है :-
सिंटैक्स:-
redis host:post> LPOP <keyname>
आउटपुट:-
- (string) reply, representing first element of the list. - (nil), if key does not exists. - Error, if key exist and value stored at the key is not a list.
उदाहरण :-
बीएलपीओपी कमांड
यह कमांड एलपीओपी कमांड का एक ब्लॉकिंग वर्जन है क्योंकि यह ऑपरेशन को तब ब्लॉक करता है जब किसी निर्दिष्ट सूची से पॉप करने के लिए कोई तत्व नहीं होता है। दूसरे शब्दों में, जब सभी निर्दिष्ट सूचियाँ खाली होती हैं या सभी निर्दिष्ट कुंजियाँ मौजूद नहीं होती हैं, तो यह ऑपरेशन को ब्लॉक कर देता है।
यह एक गैर-रिक्त सूची मान के पहले तत्व को हटाता है और लौटाता है, जिसमें निर्दिष्ट कुंजियों को बाएं से दाएं चेक किया जाता है। तो उदाहरण के लिए, अगर BLOPOP list1 list2 list3 0 . कमांड करें निष्पादित किया जाता है, जहां कुंजी सूची1 . है मौजूद नहीं है (एक खाली सूची के रूप में विचार करें), list2 एक खाली सूची है और सूची3 इसमें तीन तत्व होते हैं, फिर यह list3 . पर संग्रहीत सूची मान के पहले तत्व को हटा देता है और वापस कर देता है क्योंकि यह पहली गैर-खाली सूची है, जब सूची 1 से सूची 3 की जाँच की जाती है।
यदि या तो निर्दिष्ट कुंजी मौजूद नहीं है या निर्दिष्ट कुंजी का सूची मान खाली है, तो BLPOP ऑपरेशन को तब तक अवरुद्ध करता है जब तक कि कोई अन्य क्लाइंट निर्दिष्ट कुंजी में से एक में एक तत्व सम्मिलित करने के लिए LPUSH, RPUSH और LINSERT जैसे कमांड निष्पादित नहीं करता है। एक बार सूची मानों में से एक पर नया तत्व मौजूद हो जाने पर, क्लाइंट कुंजी के नाम के साथ इसे अनब्लॉक करने और पॉप किए गए मान के साथ वापस आ जाता है।
जब बीएलपीओपी क्लाइंट को ब्लॉक करने का कारण बनता है और एक गैर-शून्य टाइमआउट निर्दिष्ट किया जाता है, तो क्लाइंट शून्य मान लौटाएगा जब निर्दिष्ट टाइमआउट कम से कम एक निर्दिष्ट कुंजी के विरुद्ध सम्मिलित ऑपरेशन के बिना समाप्त हो गया है।
एक टाइमआउट तर्क एक पूर्णांक मान है जो ब्लॉक करने के लिए सेकंड की अधिकतम संख्या का प्रतिनिधित्व करता है। 0 सेकंड के टाइमआउट का उपयोग अनिश्चित काल के लिए ब्लॉक करने के लिए किया जा सकता है।
Redis BLPOP कमांड का सिंटैक्स इस प्रकार है :-
सिंटैक्स:-
redis host:post> BLPOP <keyname-1> [ <keyname> ] <timeout>
आउटपुट:-
- (array) reply, two elements are returned where first element is name of the popped element key and second element is the popped element itself. - (nil), when no element could be popped and timeout is expired.
उदाहरण :-
संदर्भ :-
- एलपीओपी कमांड डॉक्स
- बीएलपीओपी कमांड डॉक्स
रेडिस डेटास्टोर में संग्रहीत सूची मान के पहले तत्व को निकालने और वापस करने के लिए बस इतना ही। अगर आपको यह पसंद आया हो, तो कृपया अपने विचार कमेंट सेक्शन में साझा करें और दूसरों के साथ भी साझा करें।