कुछ अस्पष्ट रूप से "auto_increment" के समान करने के लिए, मैं INCR फ़ंक्शन को देखूंगा:
http://redis.io/commands/incr
यह एक मूल्य में वृद्धि करेगा, आपको नया मान लौटाएगा - और यह परमाणु है (अधिकांश/सभी रेडिस कमांड की तरह), इसलिए आपको थ्रेडिंग मुद्दों के बारे में चिंता करने की आवश्यकता नहीं है। तो आपके कदम कुछ इस तरह होंगे:
- एक वृद्धि कुंजी सेट करें।
- जब आप कोई मान जोड़ना चाहते हैं, तो कुंजी को INCR करें, और लौटाए गए INCR मान का उपयोग करके अपना नया मान सेट करें।
- आईएनसीआर ने इस बिंदु पर वृद्धि कुंजी के मूल्य में वृद्धि की है, इसलिए कोई भी बार-बार मूल्य प्रविष्टि "अगला" संख्या का उपयोग करेगी।
यदि आप उन वस्तुओं की सूची संग्रहीत करना चाहते हैं जिन्हें अनुक्रमणिका द्वारा देखा जा सकता है, तो आप शायद ऐसा कुछ करना चाहते हैं (प्रोग्रामिंग स्यूडोकोड में):
// When you initialize your database for the first time.
SET index "0"
// When you want to insert a new item:
INCR index
SET myList:(index value) "My Value"
// When you want to retrieve an item, and you have the index for it:
GET myList:(index value)
इस उदाहरण में, मैं मान रहा हूँ कि आपके कार्यक्रम में आप INCR द्वारा लौटाए गए मानों का ट्रैक रख रहे हैं। मूल्य INCR रिटर्न वह सूचकांक होगा जिस पर आप नया आइटम सम्मिलित करते हैं, साथ ही वह सूचकांक जिसके साथ आप बाद में अपना आइटम देखेंगे। तो, मेरे उदाहरण कोड में, (इंडेक्स वैल्यू) को उस संग्रहीत मूल्य से बदलें जो आपको INCR से वापस मिला है (आप यह कैसे करते हैं, यह इस बात पर निर्भर करता है कि आप किस प्रोग्रामिंग भाषा का उपयोग कर रहे हैं)।
ध्यान दें कि यह DEL myList:(index value)
के माध्यम से बीच में आइटम को हटाने की अनुमति देता है , क्योंकि आप अंतिम अनुक्रमणिका . को ट्रैक कर रहे हैं index
. के साथ , इसलिए यदि कोई आइटम हटा दिया जाता है, तो भी अंतिम अनुक्रमणिका वही रहेगी - यह अधिकांश SQL सर्वरों में "ऑटो इंक्रीमेंट" फ़ील्ड के समान व्यवहार करती है।
आप वास्तव में इसके लिए सेट का उपयोग नहीं करना चाहते हैं; सेट स्वाभाविक रूप से अनियंत्रित होते हैं, और वे वास्तव में "कुंजी" द्वारा चीजों को देखने के लिए नहीं बने होते हैं - एक सेट में वस्तुओं में वास्तव में एक कुंजी भी नहीं होती है। सेट अन्य सेट संचालन के लिए अधिक उपयोगी होते हैं जो आप उन पर कर सकते हैं, जैसे SINTER या SDIFF।