प्रबंधित उपयोगकर्ता नाम / पासवर्ड नोडज के साथ प्रबंधित रेडिस से कनेक्ट करना

Aug 15 2020

संपादित करें: इस मुद्दे के बारे में सोचने के बाद, असली सवाल यह है कि टीलों का उपयोग करके नोड-रेडिस के साथ डिजिटलोसिन के प्रबंधित रेडिस से जुड़ने का एक उदाहरण क्या है?

मैं उपयोगकर्ता नाम / पासवर्ड का उपयोग करके रिडाइइटलाइट GUI क्लाइंट के साथ ठीक से कनेक्ट करने में सक्षम हूं, लेकिन नोडज के साथ कनेक्ट नहीं कर सकता। यह एक ही कंप्यूटर पर है इसलिए कोई फ़ायरवॉल समस्या नहीं है।

var redis = require('redis');
var client = redis.createClient(process.env.REDIS_PORT, process.env.REDIS_URL, {no_ready_check: true});
client.auth('password', function (err) {
    if (err) {
      console.log(err);
      return
    }
    console.log('auth')
});

एक बात मैं उलझन में हूं कि उपयोगकर्ता नाम कहां दर्ज करना है? यह सिर्फ 'डिफ़ॉल्ट' है, लेकिन नोड_्रेडिस के लिए दस्तावेज़ीकरण के दौरान उपयोगकर्ता नाम देने का एक तरीका प्रदान नहीं करता है।

त्रुटि है: AbortError: Redis connection lost and command aborted. It might have been processed.

यहाँ मेरे काम हल्के ढंग से गुमनाम redisinsight कनेक्शन स्क्रीन है।

मैं नोड-रेडिस में कैसे करूं?

जवाब

2 LeoMurillo Aug 16 2020 at 07:36

AUTHआदेश, में कहा गया है डॉक्स :

जब ACL का उपयोग किया जाता है, तो कमांड का एकल तर्क फॉर्म, जहां केवल पासवर्ड निर्दिष्ट किया जाता है, मान लेता है कि निहित उपयोगकर्ता नाम "डिफ़ॉल्ट" है।

तो भले ही आप Redis 6 का उपयोग कर रहे हों, जहाँ अतिरिक्त उपयोगकर्ताओं का समर्थन हो, आपके प्रमाणीकरण के लिए defaultकाम करना चाहिए।

आपके द्वारा देखी जा रही त्रुटि एक टूटे हुए कनेक्शन का परिणाम है , जैसे कि आप किसी तरह से रेडिस सर्वर से कनेक्शन खो चुके हैं। node-redisदो परिदृश्यों (या दोनों) में से एक के साथ काम कर रहा है - कनेक्शन का समय समाप्त हो गया है या फिर से कनेक्ट करने के प्रयासों ने एक कॉन्फ़िगरेशन में निर्दिष्ट अधिकतम संख्या को पार कर लिया है। मैं आपके कनेक्शन की जानकारी और आपके रेडिस सर्वर को कैसे कॉन्फ़िगर किया गया है, इसकी दोबारा जांच करेगा।

मैं देख रहा हूं कि आप टीएलएस का उपयोग कर रहे हैं, आपको यह उपयोगी लग सकता है: सिक्योरिंग नोड रेडिस

यदि आप एक अलग उपयोगकर्ता के साथ नोड-रेडिस क्लाइंट को प्रमाणित करना चाहते हैं, तो Redis 6 का उपयोग करते समय, आपको उपयोग करना होगा send_command, लेकिन इससे पहले कि आपको वर्तमान कमांड को हटाने की आवश्यकता हो AUTH, क्योंकि वर्तमान में नोड-रेडिस नए कमांड का समर्थन नहीं करता है AUTH <username> <password>

client['auth'] = null;
client.send_command('AUTH', ['<username>', '<password>'], redis.print);