Redis命令-HyperLogLog

HyperLogLog数据结构简介

可以看http://www.cnblogs.com/ysuzhaixuefei/p/4052110.html  博客,介绍的相对比较清晰。

HyperLogLog数据结构,可以接收多个参数输入,然后估算出元素的基数。

? 基数:集合中不同元素的数量。比如 {‘apple‘, ‘banana‘, ‘cherry‘, ‘banana‘, ‘apple‘} 的基数就是 3 。

? 估算值:算法给出的基数并不是精确的,可能会比实际稍微多一些或者稍微少一些,但会控制在合

理的范围之内。

HyperLogLog 的优点是,即使输入元素的数量或者体积非常非常大,计算基数所需的空间总是固定

的、并且是很小的。

在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基

数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以

HyperLogLog 不能像集合那样,返回输入的各个元素。

  • PFADD

PFADD key [element ...]:将任意数量的元素添加到指定的HyperLogLog中去。相对会更新HyperLogLog内部,更改集合的基数。如果对应的HyperLogLog的基数发生变化则返回1,否则返回0。

返回值:基数被修改返回1,否则返回0

  1. 127.0.0.1:6379> PFADD databases Redis Mongodb MySQL
  2. (integer) 1
  3. 127.0.0.1:6379> PFCOUNT databases
  4. (integer) 3
  5. 127.0.0.1:6379> PFADD databases Redis
  6. (integer) 0
  7. 127.0.0.1:6379> PFADD databases RedisTest
  8. (integer) 1
  9. 127.0.0.1:6379> PFCOUNT databases
  10. (integer) 4
  • PFCOUNT

PFCOUNT key[key ... ]:PFCOUNT作用于单个key的时候,返回该key的基数。当PFCOUNT命令作用于多个key时,返回并集的近似数。

返回值:给定hyperLogLog的基数。

  • PFMERGE

PFMERGE destkey sourcekey[sorcekey ...]:将多个HyperLogLog合并为一个HyperLogLog,合并后
的HyperLogLog的基数接近于所有输入的可见集合的并集。合并得出的hyperLogLog会被存储到destkey中去。

返回值:成功返回ok。

  1. 127.0.0.1:6379> PFADD nosql Redis MongoDB Memcache
  2. (integer) 1
  3. 127.0.0.1:6379> PFADD rdbms mysql mssql oracle
  4. (integer) 1
  1. 127.0.0.1:6379> PFMERGE databases nosql rdbms
  2. OK
  3. 127.0.0.1:6379> PFCOUNT databases
  4. (integer) 9
时间: 2024-10-06 22:33:04

Redis命令-HyperLogLog的相关文章

Redis 学习之路 (010) - redis命令手册

Redis 键(key) 命令 命令 描述 Redis DEL 命令 该命令用于在 key 存在是删除 key. Redis Dump 命令 序列化给定 key ,并返回被序列化的值. Redis EXISTS 命令 检查给定 key 是否存在. Redis Expire 命令 seconds 为给定 key 设置过期时间. Redis Expireat 命令 EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间. 不同在于 EXPIREAT 命令接受的时间参数是 UN

redis命令手册

Redis 键(key) 命令 命令 描述 Redis DEL 命令 该命令用于在 key 存在是删除 key. Redis Dump 命令 序列化给定 key ,并返回被序列化的值. Redis EXISTS 命令 检查给定 key 是否存在. Redis Expire 命令 seconds 为给定 key 设置过期时间. Redis Expireat 命令 EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间. 不同在于 EXPIREAT 命令接受的时间参数是 UN

redis实战笔记(3)-第3章 Redis命令

第3章 Redis命令 本章主要内容 字符串命令. 列表命令和集合命令 散列命令和有序集合命令 发布命令与订阅命令 其他命令 在每个不同的数据类型的章节里, 展示的都是该数据类型所独有的. 最具代表性的命令. 首先让我们来看看, 除了GET和SET之外, Redis的字符串还支持哪些命令. 3.1 字符串 在Redis里面, 字符串可以存储以下3种类型的值. 字节串( byte string) . 整数. 浮点数. 除了自 增操作和自 减操作之外, Redis还拥有对字节串的其中一部分内容进行读

redis演练(2) 最全redis命令列表

官方The full list of commands 官方在线交互学习工具 Redis命令参考简体中文版 Redis-cli命令最新总结 Redis 命令参考(官方中文翻译) Redis命令简明示例 下面列表是本人通过程序搜集的help命令整理的聚合列表,希望为redis填把火. COMMAND summary since group DECR key  Decrement the integer value of a  key by one  1.0.0  string DECRBY key

Redis 命令

Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. 语法 Redis 客户端的基本语法为: $ redis-cli 实例 以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis 127.0.0.1:6379> redis 127.0.0.1:

Redis命令行设置密码重启后无效

在redis命令行下有种设置密码的方式: 登录redis redis 127.0.0.1:6379[1]> config set requirepass my_redis OK redis 127.0.0.1:6379[1]> config get requirepass 1) "requirepass" 2) "my_redis" 设置密码以后不用重启就能生效. BUT重启redis服务以后这个密码就失效了. 所以还是得更改配置文件 /etc/redi

Redis系列--4、Redis命令

键命令.字符串命令.哈希命令.列表命令.集合(有序集合)命令.服务器命令 一.Redis的键命令 S.N. 命令 & 描述 1 DEL key此命令删除键,如果存在 2 DUMP key 该命令返回存储在指定键的值的序列化版本. 3 EXISTS key 此命令检查该键是否存在. 4 EXPIRE key seconds指定键的过期时间 5 EXPIREAT key timestamp 指定的键过期时间.在这里,时间是在Unix时间戳格式 6 PEXPIRE key milliseconds 设

redis如何执行redis命令

Redis 命令 Redis 命令用于在 redis 服务上执行操作.所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cmd窗口,将路径定位到Redis安装目录下,通过redis-server命令执行. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中,也就是redis-cli.exe,同理,可以双击执行也可以通过命令执行. 语法 Redis 客

Redis 命令参考

本文档是 Redis Command Reference 和 Redis Documentation 的中文翻译版: 所有 Redis 命令文档均已翻译完毕, Redis 最重要的一部分主题(topic)文档, 比如事务.持久化.复制.Sentinel.集群等文章也已翻译完毕. 文档目前描述的内容以 Redis 2.8 版本为准, 查看更新日志(change log)可以了解本文档对 Redis 2.8 所做的更新. 你可以通过网址 doc.redisfans.com 在线阅览本文档, 也可以下