Redis PFCOUNT 命令
Redis PFCOUNT 命令返回给定 HyperLogLog 的基数估算值
( Redis >= 2.8.9 )
Redis PFCOUNT 命令语法格式
Redis PFCOUNT 命令语法格式如下
127.0.0.1:6379> PFCOUNT key [key ...]
当 PFCOUNT 命令作用于单个键时, 返回储存在给定键的 HyperLogLog 的近似基数, 如果键不存在, 那么返回 0 。
当 PFCOUNT 命令作用于多个键时, 返回所有给定 HyperLogLog 的并集的近似基数, 这个近似基数是通过将所有给定 HyperLogLog 合并至一个临时 HyperLogLog 来计算得出的。
通过 HyperLogLog 数据结构, 用户可以使用少量固定大小的内存, 来储存集合中的唯一元素 (每个 HyperLogLog 只需使用 12k
字节内存,以及几个字节的内存来储存键本身)。
命令返回的可见集合(observed set)基数并不是精确值, 而是一个带有 0.81%
标准错误(standard error)的近似值。
举个例子, 为了记录一天会执行多少次各不相同的搜索查询, 一个程序可以在每次执行搜索查询时调用一次 PFADD , 并通过调用 PFCOUNT 命令来获取这个记录的近似结果。
返回值
整数,返回给定 HyperLogLog 的基数值,如果多个 HyperLogLog 则返回基数估值之和。
范例
127.0.0.1:6379> FLUSHALL OK 127.0.0.1:6379> PFADD language "PHP" "Python" "Perl" "Ruby" (integer) 1 127.0.0.1:6379> PFADD language "JAVA" "C#" "C++" (integer) 1 127.0.0.1:6379> PFADD language "JAVA" (integer) 0 127.0.0.1:6379> PFCOUNT language (integer) 7 127.0.0.1:6379> PFADD other_language "Kotlin" "Scala" (integer) 1 127.0.0.1:6379> PFCOUNT language other_language (integer) 9