hyperloglog
前言
从官网文档可以看出 HyperLogLog 是一种估计集合基数的数据结构。作为一种概率数据结构,HyperLogLog 以完美的准确性换取高效的空间利用。
HyperLogLog的应用场景是基数统计。 基数统计顾名思义就是统计一个集合中不重复元素的个数。
Redis HyperLogLog 实现最多使用 12 KB,并提供 0.81% 的标准错误。
限制:
HyperLogLog 可以估计最多包含 18,446,744,073,709,551,616 (2^64) 个成员的集合的基数。
# 一、命令hyperloglog 的命令很简单只有三条 + 俩条测试命令 (框中的俩条命令为测试命令)
```c
PFADD 是将元素添加到hyperloglog 键 如果不存在就创建
PFADD test 1
PFADD test a b c d e f
PFCOUNT 是返回集合的唯一基数
PFCOUNT test
PFMERGE 将一个或多个HyperLogLog 合并(merge)为一个 HyperLogLog
PFMERGE test2 test test1
```
# 二、项目实战## 1.pom 依赖:```c
org.redisson
redisson-spring-boot-starter
3.20.1
```
## 2.添加数据:```c
/** 添加数据 */
public void add(String testName, T item) {
RHyperLogLog hyperLogLog = redissonClient.getHyperLogLog(testName);
hyperLogLog.add(item);
}
/** 将集合数据添加到 HyperLogLog */
public void addAll(String testName, List items) {
RHyperLogLog hyperLogLog = redissonClient.getHyperLogLog(testName);
hyperLogLog.addAll(items);
}
```
## 3.合并```c
/**
* 将 otherTestNames 的 log 合并到 testName
*
* @param te