RedisCache StackExchange客户端-IDatabase.KeyDeleteAsync-返回false时需要场景

RedisCache StackExchange客户端-IDatabase.KeyDeleteAsync-返回false时需要场景,redis,stackexchange.redis,Redis,Stackexchange.redis,我们正在使用Stackexchange客户端连接到Redis。 Redis具有IDatabase.KeyDeleteAsync方法,并返回布尔值。在哪些情况下,此方法将返回false?当密钥以前不存在时(当命令返回0时),它将返回false 例如: var ctx = ConnectionMultiplexer.Connect("localhost:6379"); var db = ctx.GetDatabase(); db.StringSet("key", "value"); var @tr

我们正在使用Stackexchange客户端连接到Redis。
Redis具有IDatabase.KeyDeleteAsync方法,并返回布尔值。在哪些情况下,此方法将返回false?

当密钥以前不存在时(当命令返回0时),它将返回false

例如:

var ctx = ConnectionMultiplexer.Connect("localhost:6379");
var db = ctx.GetDatabase();

db.StringSet("key", "value");
var @true = db.KeyDelete("key");
var @false = db.KeyDelete("key");

您可以检查以下源代码:where是将命令返回1时的结果设置为true,将命令返回0时的结果设置为false的逻辑。

谢谢。当它返回false时还有其他情况吗?根据Redis命令本身,如果密钥不存在,则返回0,库代码将其转换为false。我在本地进行了检查,如果使用fire and forget,则结果似乎总是false<代码>等待db.KeyDeleteAsync(key,CommandFlags.FireAndForget)