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

रेडिस स्कैन मिलान

रेडिस स्कैन मैच केवल ग्लोब स्टाइल मिलान का समर्थन करता है। यह रेगेक्स मिलान नहीं कर सकता। अपने लक्ष्य को प्राप्त करने के लिए, आपके पास दो विकल्प हैं:

  1. सभी कुंजियों को स्कैन करें और क्लाइंट साइड पर मिलान करें।
  2. स्कैन और मिलान करने के लिए Lua स्क्रिप्ट का उपयोग करें। उदाहरण के तौर पर आप निम्न वन-लाइनर आज़मा सकते हैं:
redis-cli eval 'local res = redis.call("scan", ARGV[1]); local matches = {}; for i,v in ipairs(res[2]) do if v == string.match(v, ARGV[2]) then matches[#matches+1] = v end end res[2] = matches; return res' 0 cursor-starting-from-0 'Person:[^:]*'

यह वन-लाइनर बिल्ट-इन स्कैन कमांड की तरह ही परिणाम देता है। मैं लुआ विशेषज्ञ नहीं हूं, और कोड का पूरी तरह से परीक्षण नहीं किया गया है।

इसके अलावा, लुआ का मिलान रेगेक्स मिलान नहीं है, हालांकि यह अधिकांश समस्याओं को हल कर सकता है। यह देखने के लिए कि क्या यह आपके मामले से मेल खाता है, आपको लुआ का संदर्भ लेना होगा।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. उबंटू 16.04 सिस्टमड रेडिस उलिमिट के साथ जारी करता है

  2. मुझे लैरवेल 5.2 में त्रुटि क्लास 'प्रेडिस \ क्लाइंट' नहीं मिल रही है

  3. रेडिस स्टोर (या कोई डेटाबेस?) लॉक मैकेनिज्म (NodeJS)

  4. फ़ाइल या असेंबली लोड नहीं कर सका System.Runtime.CompilerServices.Unsafe

  5. नोड रेडिस, चर ग्राहकों के बीच साझा किए जाते हैं?