分类:
java服务端 分布式服务架构 JavaScript生态体系 大数据与人工智能 数据库 服务器运维 全文搜索 Python 移动互联网 W3C&前端开发 项目构建管理 php 编程语言 常用软件 软件测试 综合教程

Redis HyperLogLog 基数统计详解

2019-04-11 21:57|来源: 网路

Redis HyperLogLog

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

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

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

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


什么是基数?

比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。


实例

以下实例演示了 HyperLogLog 的工作过程:

redis 127.0.0.1:6379> PFADD w3ckey "redis"
1) (integer) 1
redis 127.0.0.1:6379> PFADD w3ckey "mongodb"
1) (integer) 1
redis 127.0.0.1:6379> PFADD w3ckey "mysql"
1) (integer) 1
redis 127.0.0.1:6379> PFCOUNT w3ckey
(integer) 3



Redis HyperLogLog 命令

下表列出了 redis HyperLogLog 的基本命令:

序号 命令及描述
1 PFADD key element [element ...]
添加指定元素到 HyperLogLog 中。
2 PFCOUNT key [key ...]
返回给定 HyperLogLog 的基数估算值。
3 PFMERGE destkey sourcekey [sourcekey ...]
将多个 HyperLogLog 合并为一个 HyperLogLog

相关问答

更多

HyperLogLog在redis有什么使用原理

Redis是一个开源的使用C语言编写、开源、支持网络、可基于内存亦可持久化的日志型、高性能的Key-Value数据库,并提供多种语言的API。   它通常被称为数据结构服务器,因为值(value)可以是 字符串(String)、哈希(Map)、 列表(list)、集合(sets) 和 有序集合(sorted sets)等类型。   Redis 与其他 key - value 缓存产品有以下三个特点:   Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 ...

redis 命令行的语法提示 如何去掉

Redis Pgmerge 命令将多个 HyperLogLog 合并为一个 HyperLogLog ,合并后的 HyperLogLog 的基数估算值是通过对所有 给定 HyperLogLog 进行并集计算得出的。 语法 redis Pgmerge 命令基本语法如下: redis 127.0.0.1:6379> PFMERGE destkey sourcekey [sourcekey ] 可用版本 >= 2.8.9 返回值 返回 OK。 实例 redis 127.0.0.1:6379> PFADD ...

redis高并发时有多少命令没执行

Redis Pgmerge 命令将多个 HyperLogLog 合并为一个 HyperLogLog ,合并后的 HyperLogLog 的基数估算值是通过对所有 给定 HyperLogLog 进行并集计算得出的。 语法 redis Pgmerge 命令基本语法如下: redis 127.0.0.1:6379> PFMERGE destkey sourcekey [sourcekey ...] 可用版本 >= 2.8.9 返回值 返回 OK。 实例 redis 127.0.0.1:6379> PFA ...

如何将多个redis查询命令合并成一个执行

Redis Pgmerge 命令将多个 HyperLogLog 合并为一个 HyperLogLog ,合并后的 HyperLogLog 的基数估算值是通过对所有 给定 HyperLogLog 进行并集计算得出的。   语法   redis Pgmerge 命令基本语法如下:   redis 127.0.0.1:6379> PFMERGE destkey sourcekey [sourcekey ...]   可用版本   >= 2.8.9   返回值   返回 OK。   实例   redis 1 ...

spring redis怎么使用

增加了Redis HyperLogLog命令PFADD,PFCOUNT,PFMERGE 可以使用Jackson基于RedisSerializer对Java类型序列化 使用PropertySource配置Redis Sentinel连接,目前仅Jedis客户端支持!

redis教程

相关文章

更多

最近更新

更多