Redis 简介
Redis 教程
Redis 安装
Redis 配置
Redis 数据类型
Redis 命令
Redis 命令
Redis 键(key)
Redis 字符串(String)
Redis 哈希(Hash)
Redis 列表(List)
Redis 集合(Set)
Redis 有序集合(sorted set)
Redis HyperLogLog
Redis 发布订阅
Redis 事务
Redis 脚本
Redis 连接
Redis 服务器
Redis 进阶教程
Redis 数据备份与恢复
Redis 安全
Redis 性能测试
Redis 客户端连接
Redis 管道技术
Redis 分区
Java 使用 Redis
PHP 使用 Redis
Redis HyperLogLog - Redis 教程 - 光年文档管理系统(Light Year Doc)
网站首页
Redis HyperLogLog
## 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 itshubaokey "redis" 1) (integer) 1 redis 127.0.0.1:6379> PFADD itshubaokey "mongodb" 1) (integer) 1 redis 127.0.0.1:6379> PFADD itshubaokey "mysql" 1) (integer) 1 redis 127.0.0.1:6379> PFCOUNT itshubaokey (integer) 3 ``` ## Redis HyperLogLog 命令 <table class="table"><tbody><tr><th style="width:10%">序号</th><th>命令及描述</th></tr><tr><td>1</td><td>PFADD key element [element ...] <br/> 添加指定元素到 HyperLogLog 中。</td></tr><tr><td>2</td><td>PFCOUNT key [key ...] <br/> 返回给定 HyperLogLog 的基数估算值。</td></tr><tr><td>3</td><td>PFMERGE destkey sourcekey [sourcekey ...] <br/> 将多个 HyperLogLog 合并为一个 HyperLogLog</td></tr></tbody></table>
上一篇:
Redis 有序集合(sorted set)
下一篇:
Redis 发布订阅