Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

रेडिस - लुआ टेबल रिटर्न वैल्यू के रूप में - यह क्यों काम नहीं कर रहा है?

यदि आप Redis EVAL . देखें प्रलेखन आप देख सकते हैं कि रेडिस एक लुआ तालिका को रेडिस उत्तर में बदलने के लिए रेडिस द्वारा उपयोग किए जाने वाले नियम क्या हैं:

  1. लुआ टेबल (सरणी) -> रेडिस मल्टी बल्क रिप्लाई (लुआ एरे के अंदर फर्स्टनिल तक छोटा किया गया है, यदि कोई हो )
  2. लुआ टेबल सिंगल ओके फील्ड के साथ -> रेडिस स्टेटस रिप्लाई
  3. एकल त्रुटि फ़ील्ड के साथ लुआ तालिका -> रेडिस त्रुटि उत्तर

तो विशेष मामलों 2 और 3 को छोड़कर, रेडिस मानता है कि आपकी तालिका एक अनुक्रम (यानी सूची) है जिसका अर्थ है कि यह retv[1], retv[2], ... पढ़ता है जब तक इसका सामना nil . से नहीं हो जाता तत्व (यहां संबंधित स्रोत कोड अनुभाग है)।

यह बताता है कि क्यों retv["test"] आपके मामले में अनदेखा कर दिया गया है।

अगर आप इसके साथ अपना कोड बदलते हैं:

local retv = {"This", "is", "a", "bug" }
retv[5] = 1000
return retv

फिर यह अतिरिक्त तत्व वापस आ जाता है:

1) "This"
2) "is"
3) "a"
4) "bug"
5) (integer) 1000


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं अपने रेडिसक्लाउड डीबी में डेटा का दूरस्थ रूप से निरीक्षण कैसे कर सकता हूं?

  2. Node.js WebSocket Redis सर्वर को कैसे स्केल करें?

  3. जेस्ट और रेडिस (डेटाबेस कैश के साथ इकाई परीक्षण समस्या)

  4. Redis बिना पुनरावृति और पॉपिंग के सूची के सभी मूल्य प्राप्त करता है

  5. रेडिस - एक्सपायर्ड इंडेक्स डिलीट नहीं होते हैं