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