redis HyperLogLog 可以接受多个元素作为输入,并给出输入元素的基数估算值.

基数:集合中不同元素的数量。比如 [foo', 'bar', 'foobar', 'bar', 'test'}]的基数就是 4.

HyperLogLog 只提供了三个函数:pfadd、pfcount、pfmerge

pfadd:

添加指定元素到 HyperLogLog 中。

pfadd(key, *values)

返回值

整型,如果至少有个元素被添加返回 1, 否则返回 0。

pfcount:

返回指定 HyperLogLog 的基数值。

pfmerge:

将多个 HyperLogLog 合并为一个 HyperLogLog。

实例:

>>> import redis
>>> r = redis.Redis()
>>> r.pfadd('hyperlog1', *['foo', 'bar', 'foo', 'foobar', 'test'])
1
>>> r.pfcount('hyperlog1')
4
>>> r.pfadd('hyperlog2', *['foo', 'bar', 'man', 'xie', 'xiemanrui'])
1
>>> r.pfcount('hyperlog2')
5
>>> r.pfmerge('hyperlog1', 'hyperlog2')
True
>>> r.pfcount('hyperlog1')
7
>>> 

Redis in Python:HyperLogLog(pfadd、pfcount、pfmerge)的更多相关文章

  1. Redis系列10:HyperLogLog实现海量数据基数统计

    Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...

  2. Python:struct模块的pack、unpack

    mport struct pack.unpack.pack_into.unpack_from 1 # ref: http://blog.csdn<a href="http://lib. ...

  3. Python:Day25 成员修饰符、特殊成员、反射、单例

    一.成员修饰符 共有成员 私有成员,__字段名,__方法 - 无法直接访问,只能间接访问 class Foo: def __init__(self,name,age): self.name = nam ...

  4. python:类与对象命名空间、面对对象的组合用法

    1,类里可以定义两种属性: #静态属性 #静态属性就是直接在类中定义的变量 #动态属性 #动态属性就是定义在类中的方法 class Course: language = ['Chinese']#静态属 ...

  5. Python:内置函数makestrans()、translate()

    转于:https://blog.csdn.net/u014351782/article/details/46740297 博主:夜-feng 一.makestrans() 格式: str.maketr ...

  6. Python:正则表达式(三)*、+、?的用法

    一.功能*——表示匹配前面的字符0个或多个:+——表示前面的字符1个或多个:?——(1)放在其他字符后面:表示匹配0次或1次: (2)放在*.+后面:表示匹配尽可能少的字符 二.例 字符串fooooo ...

  7. BitMap、Geo、HyperLogLog

    前言 Reids 在 Web 应用的开发中使用非常广泛,几乎所有的后端技术都会有涉及到 Redis 的使用.Redis 种除了常见的字符串 String.字典 Hash.列表 List.集合 Set. ...

  8. Python:删除字符串中的字符

    一.删除字符串两端的一种或多种字符 #strip().lstrip().rstrip()方法:(默认删除空格符) A.list.strip(字符):删除字符串两端的一种或多种字符: #例:删除字符串s ...

  9. Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy   Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...

随机推荐

  1. Log4j运用于代码中

    在JAVA代码中,我们要打印输出语句的时候,我们经常会使用System.out.print(),但是在项目开发完后,这些代码就会影响项目的运行效率,所以Log4j就派上用场了.话不多说,直接上代码. ...

  2. 如何在Eclipse CDT中编译含有多个main函数的项目

    最近在杭电ACM上做题,使用的C++工具是Eclipse,但是Eclipse CDT不能同时存在多个main函数的文件,上网也搜了很多资料,但是按他们的步骤来,还是不能实现自己想要的效果.经过一下午的 ...

  3. CRM客户关系管理系统(十)

    第十章.kingadmin+admin+actions功能开发 10.1. django admin的action  可以自己写个函数执行批量操作 crm/admin.py 后台admin actio ...

  4. jQuery之select的option怎样绑定事件

    HTML: <select id='select'> <option value='0'>上海</option> <option value='1'>北 ...

  5. IT轮子系列(五)——MVC API 文件上传,总有一款是你需要的

    前言 在对外提供的接口时,也常常需要提供上传文件的.在这篇文章中会描述三种上传方式. 1.第一款,通过Base64字符上传——PostFromBase64Str 首先,定义上传数据模型.对于模型的定义 ...

  6. Maximum Subarray(最大子数组)

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  7. Spring ioc 详解

    引述:IoC(控制反转:Inverse of Control)是Spring容器的内核,AOP.声明式事务等功能在此基础上开花结果.但是IoC这个重要的概念却比较晦涩隐讳,不容易让人望文生义,这不能不 ...

  8. JavaScript中对象数组,如何给对象添加一个新属性

    var a =[{name: 'Tom',age:20},{name: 'Tom2',age:22}] 现在给a数组中的第一个对象添加性别属性 a[0]['gender']='women' a[0][ ...

  9. Xshell 5 配置上传下载命令

    可以在官网https://www.netsarang.com/products/main.html 下载Xshell, 目前最新的版本已经到Xshell 6了 本人记录下安装的目录截图: 安装命令:  ...

  10. gevent程序员指南

    gevent程序员指南 由Gevent社区编写 gevent是一个基于libev的并发库.它为各种并发和网络相关的任务提供了整洁的API.   介绍 本指南假定读者有中级Python水平,但不要求有其 ...