2013-08-10 3 views
20

booksleeve를 사용하여 Redis에서 다음을 실행하려고 할 때. 연결이 "admin 명령을 사용하여 연결을 설정하지 않으면이 명령을 사용할 수 없습니다.

을 활성화 관리자-명령을 생성하지 않는

이 명령을 사용할 수 없습니다 내가 실행 어떻게 확실하지 않다 :

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

내가 말하는 오류가 명령을 admin으로 설정하려면 관리자 권한으로 db에 a/c를 만들고 로그인해야합니까?

답변

18

기본적으로 위험한 명령은 일상적인 작업에서는 필요하지 않지만 부적절하게 사용하면 많은 문제가 발생할 수 있습니다 (예 : 귀하의 예제는 FlushDb 때문에 TSQL에서 drop database)에 해당하는이에 의해 보호됩니다 "예, 그렇게 의미 ..."플래그 :

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

나는 이것이 매우 명확하게하는 오류 메시지가 향상됩니다 명백한.

47
StackExchange.Redis에 대한

업데이트 답 : 여기에 생성 된 객체가 Marc 당 응용 프로그램에 한 번 생성 및 글로벌 싱글로 공유해야한다고도

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

참고 : ConnectionMultiplexer이 작업을 수행

때문에 많은 경우 발신자간에 을 공유하고 다시 사용하도록 설계되었습니다. 작업 당 ConnectionMultiplexer를 만들어서는 안됩니다. 완전히 스레드로부터 안전하며이 용도로는 을 사용할 준비가되었습니다.