空键和不存在的键之间有区别吗?

时间:2011-11-09 21:54:13

标签: cassandra hector

使用MultigetSliceQuery时,即使密钥不存在,结果也会为每个密钥包含一行。测试的唯一方法可能是检查每行是否存在任何列。

但是,如果我创建一个包含1个或更多列的行然后删除所有列,则MultigetSliceQuery的结果将是相同的(就好像该行从未创建过一样)。

使用CLI测试时," 列出CF "将显示空行键,但" 获取CF [键] "将返回" 返回0结果。"

没有任何列的行是否有效?

是否有办法检查结果为空vs存在?

1 个答案:

答案 0 :(得分:3)

http://wiki.apache.org/cassandra/FAQ#range_ghosts

如果您执行MultigetSlice并枚举键,它将返回每个键的结果。

如果是cli,请参阅

http://wiki.apache.org/cassandra/DistributedDeletes

对于已删除的列,空行实际上有逻辑删除。

如果您尝试检索整行并返回没有列的结果,则实际上意味着该行不存在。

相关问题