эта команда недоступна, если соединение не создано с включенными командами администратора

при попытке запустить следующее в Redis с помощью booksleeve.

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

Я получаю сообщение об ошибке сказав:

эта команда недоступна, если соединение создается с админ-команды включен"

Я не уверен, как выполнять команды в качестве администратора? Нужно ли создавать a / c в БД с доступом администратора и логином с этим?

2 ответов


В основном, опасные команды, которые вам не нужны в рутинных операциях, но которые могут вызвать множество проблем, если они используются ненадлежащим образом (т. е. эквивалент drop database в tsql, так как ваш пример FlushDb) защищены " да, я хотел это сделать... флаг:

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

я улучшу сообщение об ошибке, чтобы сделать это очень ясным и явным.


обновленный ответ для StackExchange.Рэдис:

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

обратите внимание также, что объект, созданный здесь, должен быть создан один раз для каждого приложения и совместно использоваться как глобальный синглтон, per Марк:

поскольку ConnectionMultiplexer делает много, он предназначен для совместно и повторно используется между абонентами. Вы не должны создавать ConnectionMultiplexer за операцию. Он полностью потокобезопасен и готов для этого использования.