SADD与PFADD有什么区别?

时间:2017-03-22 16:34:23

标签: redis

我希望有一个存储元素的集合,然后我可以获得基数。我注意到我可以使用命令SADD或PFADD然后使用SCARD或PFCOUNT。这两者有什么区别?有什么优点/缺点?

2 个答案:

答案 0 :(得分:4)

使用SADD时,您将数据存储在SET

使用PFADD时,您将数据存储在Hyperloglog中,这是一种不同类型的数据结构。

当您必须再次访问这些值时,SET用于存储唯一值。

HyperLogLog允许获得使用PFADD添加的数据中唯一值的大致计数。当您拥有大量不同的值并且不需要将它们取回时,它非常有用。例如,可以使用它来获取高流量网站上给定页面的给定日期的唯一身份访问者数量(您只需将唯一身份访问者ID添加到HLL)。

答案 1 :(得分:1)

SADD 和 SCARD 用于“设置”。

PFADD 和 PFCOUNT 用于“HyperLogLog”。

“HyperLogLog”的优势:

“HyperLogLog”比“Set”占用的内存少得多。


下面的视频在大约 5 分钟内准确解释了“HyperLogLog”。

https://youtu.be/UAL2dxl1fsE