尝试使用booksleeve在Redis中运行以下内容时.
using (var conn = new RedisConnection(server, port, -1, password))
{
var result = conn.Server.FlushDb(0);
result.Wait();
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误说:
除非使用admin-commands创建连接,否则此命令不可用"
我不确定如何以管理员身份执行命令?我是否需要在具有管理员权限的数据库中创建一个a/c并使用该权限登录?
Tod*_*ier 65
StackExchange.Redis的更新答案:
var conn = ConnectionMultiplexer.Connect("localhost,allowAdmin=true");
Run Code Online (Sandbox Code Playgroud)
另请注意,此处创建的对象应按应用程序创建一次,并作为全局单例共享,每个Marc:
因为ConnectionMultiplexer做了很多工作,所以它被设计为在调用者之间共享和重用.您不应该为每个操作创建ConnectionMultiplexer.它完全是线程安全的,可以用于此用途.
Mar*_*ell 26
基本上,你在日常操作中不需要的危险命令,但如果使用不当会导致很多问题(即drop databasetsql中的等价物,因为你的例子是FlushDb),受到"是的,我打算这样做"的保护......"旗帜:
using (var conn = new RedisConnection(server, port, -1, password,
allowAdmin: true)) <==== here
Run Code Online (Sandbox Code Playgroud)
我将改进错误消息,使其非常明确和明确.
您还可以在创建多路复用器时在 C# 中设置它 - set AllowAdmin= true
private ConnectionMultiplexer GetConnectionMultiplexer()
{
var options = ConfigurationOptions.Parse("localhost:6379");
options.ConnectRetry = 5;
options.AllowAdmin = true;
return ConnectionMultiplexer.Connect(options);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9496 次 |
| 最近记录: |