博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis——HyperLogLog
阅读量:7063 次
发布时间:2019-06-28

本文共 1385 字,大约阅读时间需要 4 分钟。

hot3.png

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。

在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

 

HyperLogLog的基本命令

1、PFADD key  element  [ element... ]

Redis Pfadd 命令将所有元素参数添加到 HyperLogLog 数据结构中。返回整型,如果至少有一个元素被添加返回1,否则返回0。

redis 127.0.0.1:6379> PFADD mykey a b c d e f g h i j(integer) 1redis 127.0.0.1:6379> PFCOUNT mykey(integer) 10

 

2、PFCOUNT set  [ set ..... ]

Redis Pfcount 命令返回给定 HyperLogLog 的基数估算值。

返回给定HyperLogLog的基数值,如果多个HyperLogLog则返回基数估值之和。

redis 127.0.0.1:6379> PFADD hll foo bar zap(integer) 1redis 127.0.0.1:6379> PFADD hll zap zap zap(integer) 0redis 127.0.0.1:6379> PFADD hll foo bar(integer) 0redis 127.0.0.1:6379> PFCOUNT hll(integer) 3redis 127.0.0.1:6379> PFADD some-other-hll 1 2 3(integer) 1redis 127.0.0.1:6379> PFCOUNT hll some-other-hll(integer) 6redis>

 

3、PFMERGE destkey sourcekey [ sourcekey ... ]

Redis Pgmerge 命令将多个 HyperLogLog 合并为一个 HyperLogLog ,合并后的 HyperLogLog 的基数估算值是通过对所有给定 HyperLogLog 进行并集计算得出的。

redis 127.0.0.1:6379> PFADD hll1 foo bar zap a(integer) 1redis 127.0.0.1:6379> PFADD hll2 a b c foo(integer) 1redis 127.0.0.1:6379> PFMERGE hll3 hll1 hll2OKredis 127.0.0.1:6379> PFCOUNT hll3(integer) 6redis>

 

 

 

 

 

转载于:https://my.oschina.net/u/3767248/blog/1811660

你可能感兴趣的文章
VRRP和HSRP
查看>>
Nginx 400错误研究
查看>>
css笔记04
查看>>
swagger-bootstrap-ui使用
查看>>
c语言:在屏幕上打印杨辉三角。
查看>>
Redis 安装及配置
查看>>
OpenSSL学习(二十一):基础-指令s_server
查看>>
PKI的逻辑思想
查看>>
OpenCV for Mac 编译 CMake Error at cmake/OpenCVUtils.cmake:42 (if):
查看>>
简易定制 Debian 软件仓库
查看>>
如何安装 gearmand 及对应的 php 扩展
查看>>
cocos2d-x引擎库binary版本制作(Windows环境)
查看>>
MongoDB副本集搭建
查看>>
Matlab中堆叠矩阵repmat的使用!
查看>>
设置 java -jar 的进程显示名称
查看>>
linux运维实战练习-2015年8月30日课程作业
查看>>
HDU 2019
查看>>
RabbitMQ
查看>>
项目规划管理 - 1
查看>>
×××案例之一路由之间的×××
查看>>