【发布时间】:2016-04-18 04:52:40
【问题描述】:
我们正在使用 Stackexchange 客户端连接到 Redis。 Redis 有方法 IDatabase.KeyDeleteAsync 它返回布尔值。什么情况下这个方法会返回false?
【问题讨论】:
我们正在使用 Stackexchange 客户端连接到 Redis。 Redis 有方法 IDatabase.KeyDeleteAsync 它返回布尔值。什么情况下这个方法会返回false?
【问题讨论】:
当key之前不存在时(DEL命令返回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");
你可以查看DemandZeroOrOneProcessor的源码,这里的逻辑是当命令返回1时设置结果为true,命令返回0时设置结果为false .
【讨论】:
await db.KeyDeleteAsync(key, CommandFlags.FireAndForget)