Redis Note11:三种特殊数据类型—Hyperloglog

Redis Note11:三种特殊数据类型—Hyperloglog

1. Hyperloglog

基数,不重复的元素
Redis Hyperloglog,基数统计的算法。
HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

1.1 并集:PFMERGE

127.0.0.1:6379> PFadd mykey1 a b c d e f g h i j (integer) 1 127.0.0.1:6379> PFCOUNT mykey1 (integer) 10 127.0.0.1:6379> PFadd mykey2 g h i j K L M N O P Q (integer) 1 127.0.0.1:6379> PFCOUNT mykey2 (integer) 11 # 合并两组mykey1 mykey2 => mykey3 并集 127.0.0.1:6379> PFMERGE mykey3 mykey mykey2 OK 127.0.0.1:6379> PFCOUNT mykey3 (integer) 11
 
如果允许容错,可以使用Hyperloglog。
如果不允许容错,使用set或者自己的数据类型即可。