2013-08-10 33 views
20

के साथ कनेक्शन बनाया गया हो, जब पुस्तकों के उपयोग से रेडिस में निम्न को चलाने का प्रयास किया जाता है। जब तक कनेक्शन व्यवस्थापक आदेशों सक्षम "यह आदेश तब तक उपलब्ध नहीं है जब तक कि व्यवस्थापक-आदेश सक्षम

साथ बनाई गई है

यह आदेश उपलब्ध नहीं है मुझे यकीन है कि मैं कैसे अमल नहीं कर रहा हूँ:

using (var conn = new RedisConnection(server, port, -1, password)) 
{ 
    var result = conn.Server.FlushDb(0); 
    result.Wait(); 
} 

मैं कह कोई त्रुटि मिलती है व्यवस्थापक के रूप में आदेश? क्या मुझे व्यवस्थापक पहुंच के साथ डीबी में ए/सी बनाने की आवश्यकता है और उसके साथ लॉगिन करें?

उत्तर

18

असल में, खतरनाक आदेश जो आप नियमित संचालन में आवश्यकता नहीं है, लेकिन अगर अनुपयुक्त रूप से उपयोग किया जाता है तो बहुत सारी समस्याएं पैदा हो सकती हैं (यानी। TSQL में drop database रहेगी, क्योंकि आपके उदाहरण FlushDb है) के बराबर एक द्वारा संरक्षित हैं "हाँ, मैं ऐसा करने के लिए होती ..." झंडा:

using (var conn = new RedisConnection(server, port, -1, password, 
      allowAdmin: true)) <==== here 

मैं त्रुटि संदेश में सुधार के लिए यह बहुत स्पष्ट करना होगा और स्पष्ट।

47
StackExchange.Redis के लिए

अपडेट किया गया जवाब:

var conn = ConnectionMultiplexer.Connect("localhost,allowAdmin=true"); 

भी ध्यान रखें कि वस्तु यहां बनाए गए Marc प्रति आवेदन के अनुसार एक बार बनाया है और एक वैश्विक सिंगलटन के रूप में साझा किया जाना चाहिए,:

क्योंकि ConnectionMultiplexer एक करता है बहुत, यह को कॉलर्स के बीच साझा और पुन: उपयोग करने के लिए डिज़ाइन किया गया है। आपको प्रति ऑपरेशन कनेक्शन मल्टीप्लेक्सर नहीं बनाना चाहिए। यह इस उपयोग के लिए पूरी तरह से थ्रेड-सुरक्षित और तैयार है।

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

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