什么是 HyperLogLogs
- 基于 HyperLogLogs 算发 :极小的空间完成独立数量统计
- 本质还是 string
127.0.0.1:6379> pfadd hyperloglog_key 1
(integer) 1
127.0.0.1:6379> type hyperloglog_key
string
命令 | 描述 |
---|---|
PFADD key element [element …] | 向 HyperLogLog 添加元素 |
PFCOUNT key [key …] | 向 HyperLogLog 独立总数 |
PFMERGE destkey sourcekey [sourcekey …] | 合并多个 HyperLogLog |
HyperLogLogs 演示
127.0.0.1:6379> pfadd log1 a b c d
(integer) 1
127.0.0.1:6379> pfadd log1 a b c d e
(integer) 1
127.0.0.1:6379> pfcount log1
(integer) 5
127.0.0.1:6379> pfadd log2 a b c d e f g
(integer) 1
127.0.0.1:6379> pfmerge log3 log1 log2
OK
127.0.0.1:6379> pfcount log3
(integer) 7
从上面的例子可以看出,相同的元素并没有计算在内。
应用场景
- 统计访问 IP 数
- 计算独立用户数
弊端
- 返回的可见集合基数并不是精确值, 而是一个带有 0.81% 标准错误(standard error)的近似值。具体看你的项目是否可以容忍错误。
- 无法提取出单条数据。
之前准备学习的时候写博客,可是都没有坚持下去,希望这次可以有始有终。
Redis 坚持第一天 :为什么要使用 redis ?
Redis 坚持第二天 :Redis 的安装与启动
Redis 坚持第三天 :Redis 使用配置文件启动,常见配置学习。
Redis 坚持第四天 :
- Redis 五种常见的数据结构:String
- Redis 五种常见的数据结构:Hash
- Redis 五种常见的数据结构:List
- Redis 五种常见的数据结构:Set
- Redis 五种常见的数据结构:zset
Redis 坚持第五天 :Redis 客户端:Jredis 和 spring-data-redis 整合。
Redis 坚持第六天 :Redis 慢查询日志。
Redis 坚持第七天 :Redis pipeline。
Redis 坚持第八天 :Redis 发布订阅。
Redis 坚持第九天 :Redis bitmp。
Redis 坚持第十天 :Redis HyperLogLogs。