StackExchange.Redis中KeyDelete方法传入不存在Key时的行为咨询
关于StackExchange.Redis中KeyDelete方法的行为说明
放心好了,当你调用long KeyDelete(RedisKey[] keys, CommandFlags flags = CommandFlags.None);方法传入缓存中不存在的Key时,不会抛出任何异常,方法内部会自行处理这种情况。
具体来说,这个方法的返回值是一个long类型的数字,代表实际被成功删除的Key数量:
- 如果传入的部分Key存在、部分不存在,返回值就是存在且被成功删除的Key数量
- 如果传入的所有Key都不存在,返回值直接是0
举个简单的代码示例更直观:
// 假设已完成Redis连接初始化 IDatabase db = redisConnection.GetDatabase(); // 传入两个不存在的Key long deletedCount = db.KeyDelete(new RedisKey[] { "non-exist-key-1", "non-exist-key-2" }); // 此时deletedCount的值为0,程序不会抛出任何异常
StackExchange.Redis的这种设计其实很贴合缓存操作的实际场景——Key不存在是非常常见的情况,没必要用异常来中断流程,你完全可以根据返回值判断删除操作的效果,再灵活做后续处理。
内容的提问来源于stack exchange,提问作者Aathira




