Redis支持是在2.8.9版本

Hyperloglog 存储基数。但什么是基数?

A {1,3,5,7,9}

B {1,3,3,5,7}

其中A就是基数,B有重复元素就不是基数

Hyperloglog在数据了很大的时候,可接受误差!一般用于网站UV,就是用户数量统计!

基数:说白了就是不重复的元素

好处

占用内存是固定的,只需要12KB内存!可存储2的64次方的元素。

Hyperloglog相关命令

  • PFADD :添加一个或多个元素到某个key中 参数:key 元素…
  • PFCOUNT :获取某个key 或多个key 元素数量 参数:key…
  • PFMERGE :合并多个分支 参数:newkey oldkey1 oldkey2 …

实验:添加元素 查询数量 合并元素

# 添加元素 a - k 到mykey1 (一共 11 个)
pfadd mykey1 a b c d e f g h i j k


# 统计mykey1元素数量
pfcount mykey1

# 添加元素 k - n 到mykey2 (一共 4 个)
pfadd mykey2 k l m n

# 合并mykey1、mykey2为mykey3
pfmerge mykey3 mykey1 mykey2

# 输出mykey3的数量 (因为存储的是基数形式,不会重复,故 k 只计算一次)
pfcount mykey3

注意,没有删除元素