PFADD:对集合元素进行计数

用户可以通过执行 PFADD 命令,使用 HyperLogLog 对给定的一个或多个集合元素进行计数:

PFADD hyperloglog element [element ...]

根据给定的元素是否已经进行过计数,PFADD 命令可能返回 0,也可能返回 1:

  • 如果给定的所有元素都已经进行过计数,那么 PFADD 命令将返回 0,表示HyperLog-Log 计算出的近似基数没有发生变化。

  • 与此相反,如果给定的元素中出现了至少一个之前没有进行过计数的元素,导致HyperLogLog 计算出的近似基数发生了变化,那么 PFADD 命令将返回 1。

举个例子,通过执行以下命令,我们可以使用 alphabets 这个 HyperLogLog 对 "a"、"b"、"c" 这 3 个元素进行计数:

redis> PFADD alphabets "a" "b" "c"
(integer) 1

因为这是 alphabets 第一次对元素 "a"、"b"、"c" 进行计数,所以 alphabets 计算的近似基数将发生变化,并使 PFADD 命令返回 1。

但是如果我们再次要求 alphabets 对元素 "a" 进行计数,那么这次 PFADD 命令将返回 0,这是因为已经计数过的元素 "a" 并不会对 alphabets 计算的近似基数产生影响:

redis> PFADD alphabets "a"
(integer) 0

其他信息

  • 复杂度:O(N),其中 N 为用户给定的元素数量。

  • 版本要求:PFADD 命令从 Redis 2.8.9 版本开始可用。