2013-08-10 15 views
20

ile oluşturulmadığı sürece kullanılamaz. Aşağıdakileri booksleeve kullanarak Redis'te çalıştırmaya çalışırken. Bağlantı "Bu komut, admin-commands etkin

etkin yönetici-komutlarla oluşturulmadığı sürece

Bu komut kullanılamaz Ben yürütmek nasıl emin değilim:

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

Şu hatayı olsun admin olarak komutlar admin erişimi ile bir a/c oluşturmak ve bununla oturum açmam gerekiyor mu?

cevap

18

Temel olarak, tehlikeli komutlar rutin işlemlere ihtiyaç duymaz, ancak uygun olmayan bir şekilde kullanıldığında çok fazla soruna neden olabilir (örn. senin örneğin FlushDb olduğundan TSQL içinde drop database) eşdeğer bir tarafından korunmaktadır "evet, bunu yapmak istemedim ..." bayrak:

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

Bunu çok net hale getirmek için hata mesajı iyileştirmek ve edecek açık.

47
StackExchange.Redis için

Güncelleme cevap: Burada oluşturulan nesne Marc her uygulama bir kez oluşturulan ve küresel bir singleton olarak paylaşılması gereken de

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

Not: ConnectionMultiplexer bir does

Çünkü lot, olarak paylaşılan ve arayanlar arasında yeniden kullanılmak üzere tasarlanmıştır. Her işlem için bir ConnectionMultiplexer oluşturmamalısınız. Bu kullanım için tamamen vida dişi ve hazır .