2015-06-09 3 views
6

के साथ रेडिस से सभी चाबियाँ और मान प्राप्त करें मैं अपना डेटा रेडिस में संग्रहीत करता हूं। मैं एक कच्चे इसे ग्रिड, निर्मित, और आकार में स्टोर करता हूं।रेडिस/प्रीफिक्स

var dbclient1 = db.createClient(); 
dbclient1.hmset("doc:3743-da23-dcdf-3213", "date", "2015-09-06 00:00:01", "size", "203") 
dbclient1.zadd("cache", 32131, "37463-da23-dcdf-3213") 

मैं अपने DB में अपनी सभी फ़ाइलों को देखना चाहते हैं:

तो मैं निम्नलिखित परिभाषित करते हैं। इसलिए मैं निम्नलिखित कोशिश करता हूं:

dbclient1.hgetall("doc:*", function (err, res){ 
     console.log(err) 
     console.log(res) 
}) 

लेकिन res undefined है। मैं यह कैसे कर सकता हूं? http://redis.io/commands/hgetall

आप KEYS doc:* फोन सभी कुंजियों की एक सूची आपके मापदंड से मेल खाते पाने के लिए और उसके बाद में सभी मूल्यों को प्राप्त कर सकते हैं:

उत्तर

7

HGETALL रिटर्न सभी क्षेत्रों और हैश कुंजी में संग्रहीत के मूल्यों, आप एक मुखौटा निर्दिष्ट नहीं कर सकते एक लूप।

लेकिन कृपया संभावित प्रदर्शन हिट पर एक अनुभाग पढ़ें से पहले आप ऐसा कर: http://redis.io/commands/keys

+5

उत्पादन पर कुंजी का प्रयोग मत करो, यह बहुत खतरनाक है। इसके बजाए एससीएएन का उपयोग करें, आपने MATCH और कर्सर के साथ COUNT के साथ फ़िल्टरिंग किया है - इसलिए यह स्कैन 0 COUNT 50 MATCH दस्तावेज़ जैसा होगा: * http://redis.io/commands/scan –

+4

@lcostea: 'KEYS' का उपयोग करके या हो सकता है एक विशेष परिदृश्य के आधार पर खतरनाक नहीं है जिसे ओपी ने वर्णन नहीं किया था। अनुमोदित, 'स्कैन' सुरक्षित प्रदर्शन-वार है, लेकिन चूंकि यह सिर्फ एक कर्सर है, इसलिए यह सभी प्रविष्टियों को वापस नहीं कर सकता है या कई प्रविष्टियों को कई बार वापस नहीं कर सकता है, इसलिए सावधानी से भी इसका उपयोग किया जाना चाहिए। –

+1

@LiviuCostea बिना कारण बताए खतरनाक कहना बहुत उपयोगी नहीं है। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^