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

रेडिस डीबी में सभी कुंजियों और मूल्यों को पुनरावृत्त करने का तेज़ तरीका

सबसे पहले, सबसे तेज़ तरीका यह सब EVAL के अंदर करना है।

अगला, सभी कुंजियों को पुनरावृत्त करने के लिए अनुशंसित दृष्टिकोण स्कैन है। यह KEYS . की तुलना में तेज़ी से पुनरावृति नहीं करेगा , लेकिन रेडिस को बीच में कुछ अन्य क्रियाओं को संसाधित करने की अनुमति देगा, इसलिए यह समग्र अनुप्रयोग व्यवहार में मदद करेगा।

स्क्रिप्ट कुछ इस तरह होगी local data={} local i=1 local mykeys=redis.call(\"KEYS\",\"*\") for k=1,#mykeys do local tmpkey=mykeys[k] data[i]={tmpkey,redis.call(\"GET\",tmpkey)} i=i+1 end return data , लेकिन यह विफल हो जाएगा यदि आपके पास GET (जैसे सेट, सूचियाँ) के साथ दुर्गम कुंजियाँ हैं। आपको इसमें त्रुटि प्रबंधन जोड़ने की आवश्यकता है। यदि आपको छँटाई की आवश्यकता है, तो आप इसे सीधे LUA में या बाद में क्लाइंट साइड पर कर सकते हैं। दूसरा धीमा होगा, लेकिन रेडिस इंस्टेंस के अन्य उपयोगकर्ताओं को प्रतीक्षा नहीं करने देगा।

नमूना आउटपुट:

127.0.0.1:6370> eval "local data={} local i=1 local mykeys=redis.call(\"KEYS\",\"*\") for k=1,#mykeys do local tmpkey=mykeys[k] data[i]={tmpkey,redis.call(\"GET\",tmpkey)} i=i+1 end return data" 0
1) 1) "a"
   2) "aval"
2) 1) "b"
   2) "bval"
3) 1) "c"
   2) "cval"
4) 1) "d"
   2) "dval"
5) 1) "e"
   2) "eval"
6) 1) "f"
   2) "fval"
7) 1) "g"
   2) "gval"
8) 1) "h"
   2) "hval"


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस - क्रमबद्ध सेट, संपत्ति मूल्य द्वारा आइटम ढूंढें

  2. एक्सप्रेस ऐप से डिबगिंग कैसे निकालें?

  3. जावास्क्रिप्ट में रेडिस में सभी कुंजी और मान कैसे प्राप्त करें?

  4. Laravel Redis::scan('*') अपेक्षित कुंजी क्यों लौटा रहा है लेकिन Redis::keys('*') नहीं है?

  5. ASP.NET कोर नियंत्रक में StackExchange.Redis का उपयोग करना