`
不爱不见
  • 浏览: 281553 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

转自:http://www.redis.net.cn/tutorial/3513.html
分享到:
评论

相关推荐

    08-Redis HyperLogLog与事务和Redis 7.0那点事-ev.rar

    08-Redis HyperLogLog与事务和Redis 7.0那点事_ev.rar08-Redis HyperLogLog与事务和Redis 7.0那点事_ev.rar08-Redis HyperLogLog与事务和Redis 7.0那点事_ev.rar08-Redis HyperLogLog与事务和Redis 7.0那点事_ev.rar...

    hyperloglog-redis:Redis支持的HyperLogLog算法的实现

    require 'hyperloglog-redis' counter = HyperLogLog::Counter.new(Redis.new) ['john', 'paul', 'george', 'ringo', 'john', 'paul'].each do |beatle| counter.add('beatles', beatle) end puts "There are ...

    wyhll:基于2位HyperLogLog的梦想精确近似集基数估计器。 比Redis HyperLogLog更准确,更快

    本文将深入探讨一种基于2位HyperLogLog的优化版本——wyhll,它由王翼提出,相比Redis的HyperLogLog,具有更高的精度和更快的速度。 HyperLogLog算法的核心思想是使用概率统计方法来估算集合的基数。它通过哈希函数...

    wyHLL:基于3位HyperLogLog的梦想精确近似集基数估计器。 比Redis HyperLogLog更准确

    wyHLL:WangYi的3位HyperLogLog

    图灵Java高级互联网架构师第6期分布式框架专题笔记.zip

    10-Redis HyperLogLog与事务和Redis 7.0那点事-Mark 11-MongoDB快速实战与基本原理 -fox 12-MongoDB聚合操作及索引使用详解-fox 13-MongoDB复制集实战及其原理分析-fox 14-MongoDB分片集群&多文档事务详解-fox 15-...

    untitled1.zip

    在Redis中,HyperLogLog是一种特殊的数据结构,用于估算集合中的唯一元素数量,而无需存储每个元素的具体信息。这使得HyperLogLog在处理大数据集时非常高效,内存占用极低。 HyperLogLog算法的核心思想是利用概率...

    Redis的HyperLogLog是如何实现基数统计的?

    Redis是一个开源的内存数据库,属于NoSQL数据库的一种。它以其高性能、支持丰富的数据结构、持久化特性、复制、集群以及发布/订阅等特性而闻名。Redis是一个键值存储系统,每个键都对应一个值,这个值可以是字符串、...

    10 redis高级

    Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的 只计算基数个数,但不存储元素本身 pfadd key element:...

    Redis 16.HyperLogLog.flv

    Redis 16.HyperLogLog.flv

    60道关于Redis的常见面试题.pdf

    什么是 Redis HyperLogLog 数据结构?可以用来解决什么问题? - **定义**:HyperLogLog 是一种概率型数据结构,用于估算不同集合的基数。 - **解决问题**:在内存有限的情况下,快速估计不同集合的元素数量。 ###...

    redis帮助文档之hyperloglog.md

    redis帮助文档之hyperloglog

    尚硅谷周阳Redis笔记

    以上就是关于"尚硅谷周阳Redis笔记"的一些主要知识点,包括Redis的基本概念、数据类型、持久化、事务、复制、发布订阅、布隆过滤器、HyperLogLog以及GEO定位等功能的介绍。这个笔记资源对于学习和理解Redis的使用...

    C#操作Redis明细内容 C#调用redis c#使用redis业务 C# Redis操作类 C#中Redis封装的类 C#

    谈下你对 Redis 的了解? 1)Redis是一种基于键值对的NoSQL数据库(非关系型数据库);是一个key-value存储系统 2)高性能、可靠性 Redis将数据存储在内存中,读写性能高;Redis提供了 RDB和AOF持久化,可将内存...

    redis win x64位 及 安装卸载RedisServer服务

    - Redis的数据类型:字符串、哈希、列表、集合、有序集合,以及HyperLogLog和地理空间索引。 - Redis持久化:RDB快照和AOF追加日志两种方式,确保数据在服务器重启或故障后不丢失。 - Redis事务:通过`MULTI`、`EXEC...

    redis 离线集群redis5.0以上版本

    Redis 5.0引入了HyperLogLog数据结构,用于估算集合中唯一元素的数量,占用空间非常小。此外,Bitmaps也得到了加强,提供了更多的操作,适合进行大数据分析。 8. **备份与恢复**: 考虑到集群环境,Redis 5.0改进...

    Redis-2.8 for Windows64

    HyperLogLog数据结构提供了高效的大规模唯一元素计数;还有新的Stream ID机制,增强了消息队列的功能。 **3. 安装与配置** 在Windows 64位系统上,提供的`redis.windows.conf`是Redis的主要配置文件,用户可以通过...

    Redis全套学习笔记-带章节目录-114页.pdf

    * HyperLoglog:HyperLoglog是Redis的一种数据类型,使用pfadd命令添加多个元素,pfcount命令统计基数估算。 * Geo:Geo是Redis的一种数据类型,使用geoadd命令添加地理位置,geopos命令获取地理位置。 Redis是一个...

    redis-3.2.9安装包

    5. **HyperLogLog**:这是一个高效的基数估算数据结构,用于计算不同元素的数量,占用存储空间极小。 6. **Improved Sorted Sets**:优化了有序集合的操作,包括ZINTERSTORE和ZUNIONSTORE等命令,提高了性能。 三、...

    狂神说Redis笔记.pdf

    7. HyperLogLog:概率性数据结构,用于估算不同元素的数量,节省空间。 8. Bitmap:位图,利用二进制位进行标记和统计,适用于用户在线状态追踪等场景。 【Redis持久化】 为了防止数据丢失,Redis提供了两种持久化...

    redis获取命令字典的方法及全部的group命令.txt

    Redis命令十分丰富,包括的命令组有Cluster、Connection、Geo、Hashes、HyperLogLog、Keys、Lists、Pub/Sub、Scripting、Server、Sets、Sorted Sets、Strings、Transactions一共14个redis命令组两百多个redis命令。...

Global site tag (gtag.js) - Google Analytics