redis在redis2.8.9版本中加入了Redis HyperLogLog结构;
  Redis HyperLogLog是用来做基数统计的算法,HyperLogLog的好处是:当输入元素的数量或者体积非常非常大的时候,计算基数所需的空间总是固定的,且很小的。
  在redis中,每个HyperLogLog键只需花费12Kb的内存,就可以计算2^64个不同元素的基数;这和计算基数是,元素越多耗费内存就越多的集合形成鲜明对比。
  Redis HyperLogLog的缺点是:只会根据输入元素本身来计算基数,而不存储输入元素本身,所以HyperLogLog不能像集合那样返回输入的各个元素。
那什么是基数呢
基数是数据集中去除所有重复的元素之后数据集的大小
  eg:
    给定数据集{1,2,3,6,2,4,1},那么该数据集的基数集为{1,2,3,6,4},其基数为5(不重复元素个数)
命令介绍

  • PFADD(key element [element1 ....])

    • 说明:将所有元素参数添加到HyperLogLog中
    • 参数:key(HyperLogLog的名称),element(将要加入的元素)
    • 返回:整型,如果至少有一个元素加入返回1,否则返回0
    • 实例:PFADD hl1 zset1 zset2 zset3,返回:1
    • 注意:redis-server > 2.8.9
  • PFCOUNT(key key1 ...)
    • 说明:返回给定的HyperLogLog的基数估算值
    • 参数:key(HyperLogLog的名称)
    • 返回:整型,返回给定的HyperLogLog的基数值,如果有多个HyperLogLog,则返回所有基数估值之和
    • 实例:PFCOUNThl1,返回值:3
    • 注意:redis-server > 2.8.9
  • PFMERGE(dstKey srcKey1 srcKey2,..)
    • 说明:将给定的多个HyperLogLog合并成一个HyperLogLog,合并后的HyperLogLog的基数估值是对所有给定的HyperLogLog进行并集计算得出的
    • 参数:dstKey(目标HyperLogLog),srcKey(源HyperLogLog)
    • 返回:返回OK
    • 实例:PFMERGE hl1 hl2
    • 注意:redis-server > 2.8.9

phpredis操作HyperLogLog
  phpredis中没有直接用来执行HyperLogLog相关命令的函数,但是phpredis提供了可以直接执行redis命令的方法:rawCommand(),该方法可以执行任意的redis原生命令

  • rawCommand(parameters)

    • 说明:rawCommand方法是可以执行任意redis命令的方法
    • 参数:parameters(需要执行的命令的参数)
    • 返回:和要执行的命令具有相同的返回值
    • 实例:$redis->rawCommand("set", "foo", "bar");返回值;true
    • 注意:phpredis>2.2.7才能使用rawCommand()方法

转载于:https://www.cnblogs.com/yu-yuan/p/9996100.html

Redis HyperLogLog命令,phpredis如何执行HyperLogLog命令相关推荐

  1. java jcsh执行linux命令,java jcsh执行linux命令

    java jcsh执行linux命令 [2021-02-03 01:26:29]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&q ...

  2. python调用shell命令-python中执行shell命令的几个方法小结

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或 ...

  3. sudo: apt-get:找不到命令_Linux重复执行历史命令方法详解

    Linux 下,如果要执行一条或多条之前输过的指令,要怎么处理?很多人会想到使用上下箭头去翻查历史输入的命令.这当然是可以了,除了这种方法,本文再介绍另外 5 种方法来实现这样的效果. 在正式开始之前 ...

  4. 在Matlab命令窗口中执行,交互式命令操作就是在MATLAB命令行窗口中输入命令并执行。...

    交互式命令操作就是在MATLAB命令行窗口中输入命令并执行. 答:√ 中国大学MOOC: 一侧肾切除后,另一留存肾会长得更加硕大,这种生理现象称为 . 答:代偿 Street jazz 的编舞师都会有 ...

  5. python运行命令_Python中执行外部命令

    有很多需求需要在Python中执行shell命令.启动子进程,并捕获命令的输出和退出状态码,类似于Java中的Runtime类库. subprocess模块的使用: Python使用最广泛的是标准库的 ...

  6. java解析shell命令_Android中执行java命令的方法及java代码执行并解析shell命令

    这篇文章给大家介绍Android中执行java命令的方法及java代码执行并解析shell命令,需要的朋友一起学习 android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析 ...

  7. Linux中更新java代码命令,java代码执行linux命令

    1.容器需要先执行source命令,有权限限制的需要先打通互信. 2.复杂的shell命令,如重定向,需要传入数组. public void excuteLinuxCmd(String cmd) { ...

  8. python中执行shell命令_python中执行shell命令的几个方法小结-阿里云开发者社区

    Python 执行 shell 命令 最近有个需求就是页面上执行shell命令,第一想到的就是os.system os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令 ...

  9. 关于命令行上执行java命令的错误分析 - Could not find or load main class

    成功的安装了JDK和Eclipse后,在开发测试Java工程中,很少会遇到开发环境问题. 这都归功于Eclise通过工程(project)和包(package)把这些管理好. 但偶尔在命令行下编译和运 ...

  10. java远程执行cmd命令,windows远程执行cmd命令的9种方法

    一.远程执行命令方式及对应端口:  IPC$+AT 445 PSEXEC445 WMI135 Winrm5985(HTTP)&5986(HTTPS) 二.9种远程执行cmd命令的方法: ...

最新文章

  1. 产品经理如何评估产品机会
  2. BZOJ3261 最大异或和 解题报告(可持久化Trie树)
  3. mysql 39 t.id 39_Day39----MySQL系列
  4. php mysql 开发微博_3款php+mysql国产微博程序推荐
  5. (二) shiro入门 :输出 hello world
  6. .NET Core HttpClient请求异常分析
  7. STM32F1笔记(五)外部中断EXTI
  8. 一道清华期中考试题(逃)
  9. Python-非关键字参数和关键字参数(*args **kw)
  10. 2017.3.30 时态同步 失败总结
  11. 全新设计的 Xcode 12
  12. freeswitch php事件订阅,例子3:事件订阅,监听多个事件
  13. 快、准、狠!秒杀Excel的报表工具,十分钟教你做好数据填报
  14. LeetCode 63.不同路径II(动态规划)
  15. [转]送给和我一样曾经浮躁过的PHP程序猿
  16. 新概念英语(1-95)Tickets,please!
  17. 《Excel 职场手册:260招菜鸟变达人》一第 37 招 用条件格式制作项目进度图
  18. java操作RabbitMq时出现Caused by: org.springframework.amqp.AmqpException: Cannot determine ReplyTo message
  19. 使用微软官方工具下载最新系统(win10为例)
  20. 彩虹秒赞7.8源码破解版(去域名授权) 彩虹云任务系统无任何限制

热门文章

  1. Canonical发布企业级Kubernetes 1.14重点让使用者简单管理
  2. DataReader,DataTable利用泛型填充实体类
  3. 社交产品方法论(八):数据分析的二三事
  4. JSP 九大内置对象及四大作用域
  5. odoo tree 排序
  6. 整理的部分Java和C#不同点
  7. RHEL5 Linux下Oracle 10 Client的安装明细
  8. Nginx 的 server_names_hash_bucket_size 问题
  9. 将system.out.println的输出,输出调用类等其他参数的方法
  10. android4.0 底部菜单,Android自定义控件系列(四)—底部菜单(下)