redis Hyperloglog 过滤重复

2023-11-16

Redis 中对 HyperLogLog 的应用
首先,在 Redis 中,HyperLogLog 是它的一种高级数据结构。提供有包含但不限于下面两条命令:
pfadd key value,将 key 对应的一个 value 存入
pfcount key,统计 key 的 value 有多少个
回想一下,原始APP页面统计用户的问题。如果 key 对应页面名称,value 对应用户id。那么问题就刚刚好对应上了。

Redis 中的 HyperLogLog 原理
前面我们已经认识到,它的实现中,设有 16384 个桶,即:2^14 = 16384,每个桶有 6 位,每个桶可以表达的最大数字是:25+24+…+1 = 63 ,二进制为: 111 111 。

对于命令:pfadd key value
在存入时,value 会被 hash 成 64 位,即 64 bit 的比特字符串,前 14 位用来选择这个 value 的比特串中从右往左第一个 1 出现的下标位置数值要存到那个桶中去,即前 14 位用来分桶。设第一个1出现位置的数值为 index 。当 index=5 时,就是: …10000 [01 0000 0000 0000]

之所以选 14位 来表达桶编号是因为,分了 16384 个桶,而 2^14 = 16384,刚好地,最大的时候可以把桶利用完,不造成浪费。假设一个字符串的前 14 位是:00 0000 0000 0010 (从右往左看) ,其十进制值为 2。那么 index 将会被转化后放到编号为 2 的桶。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

redis Hyperloglog 过滤重复 的相关文章

  • Beyond Compare 3 许可证密钥被撤销

    最近在使用 Beyond Compare 3 时突然出现 许可证密钥被撤销 问题 现象截图以下 自己清除注册表并重新安装后还是出现相同的问题 没办法只能求助于百度 找到解决方法 删除 C Users Administrator AppDat
  • 当我问 ChatGPT 能否推荐一下好用的 API 管理工具时?

    近期围绕 ChatGPT 的话题 真的太多了 我们就知道了 ChatGPT 简单说就是搜索引擎 社交工具 这个解释最简单明了 出于好奇 我也用 ChatGPT 测试了一下 我 在中国 最好的 API 管理工具是什么 ChatGPT 我无法确
  • 剑指 Offer 09. 用两个栈实现队列

    题目链接 09 用两个栈实现队列 思路分析 用两个栈实现队列 首先把1 gt 2然后逐个弹出顶端元素 class CQueue public stack
  • 【华为OD机试真题】单向链表中间节点(寻找链表的中间结点)(C++&java&python)100%通过率 超详细代码注释 代码深度解读

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 寻找链表的中间结点 知识点链表数组 时间限制 1s空间限制 256MB限定语言 不限 题目描
  • 2021美赛成绩查询证书下载

    下载证书地址为 http www comap math com mcm 2021Certs pdf 链接中的6个 替换为自己队的编号 如 http www comap math com mcm 2021Certs 123456 pdf
  • 中央循环管式蒸发器总图

    中央循环管式蒸发器属于自然循环型的蒸发器 它是工业生产中广泛使用且历史悠久的大型蒸发器 至今在化工 轻工 环保等行业中仍被广泛采用 它的加热室由管径为25mm 75mm 长度为1m 2m 长径之比约为20 40 的直立管束组成 在管束中央安
  • HCSR04超声波传感器驱动

    HC SR04是一款使用较为广泛的超声波测距模块 模块图如下 该模块具有四个引脚 分别为VCC GND TRIG ECHO 其中VCC GND为供电脚 TRIG为测距触发引脚 ECHO为测距输入引脚 该模块的驱动模式为 控制口发一个 10U
  • 【WIN】svchost与共享进程服务

    查看注册表中的系统服务文件夹 我们可以发现某些服务的ImagePath显示的是svchost exe的路径 如下图所示 svchost exe 是微软Windows操作系统中的系统文件 微软官方对它的解释是 svchost exe 是从动态
  • SpringBoot 整合 Druid+ 全局事务管理 +Mybatis-Plus+ 代码生成器

    SpringBoot 整合 Druid 全局事务管理 Mybatis Plus 代码生成器 在 springboot 开发当中 Druid 全局事务管理 代码生成器都是非常实用的 特此记录下整合的过程 整合 Druid 连接池 spring
  • js逆向技巧

    一 总结 搜索 全局搜索 代码内搜索 debug 常规debug XHR debug 行为debug 查看请求调用的堆栈 执行堆内存中的函数 修改堆栈中的参数值 写js代码 打印windows对象的值 勾子 cookie钩子 请求钩子 he
  • 存在的意义

    到目前为止出现过的所有备选答案 1 成功 成为人上人 2 好吃的 好听的 好看的 3 明白些道理 遇见有趣的事 4 像吃蛋糕和甜甜圈一样 在于吃的过程 5 纯粹为了快感而嗑药 6 为了我爱的人和爱我的人 7 为社会和他人作贡献 8 为神服务
  • FreeRTOS学习笔记—任务挂起和恢复

    文章目录 一 任务挂起和恢复API函数 1 1 vTaskSuspend 函数 1 2 vTaskResume 函数 1 3 xTaskResumeFromISR 函数 二 任务挂起和恢复 2 1 任务1挂起解挂任务2 2 2 中断中解挂任
  • 绘制ER图(数据库关系图)

    http www texample net tikz examples entity relationship diagram https www assembla com wiki show tikz er2 usepackage tik
  • Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService ‘applicationTaskExecutor‘

    问题 Spring Boot 报错ThreadPoolTaskExecutor Shutting down ExecutorService applicationTaskExecutor 原因 idea没有运行项目 运行了测试类 解决 运行
  • Angular 11常用api

    ngFor渲染每个商品 div div 属性绑定 div h3 a a h3 div 插值 div h3 a product name a h3 div

随机推荐

  • 【Android】使用native开发遇到的bug---java.lang.UnsatisfiedLinkError: No implementation found for

    今晚终于解决了一个困扰我三天的bug 就是这个java lang UnsatisfiedLinkError No implementation found for 感觉人生达到了巅峰 特此记录下 前几天老师给我一个项目 让我实现一个将视频下
  • 使用Xshell通过隧道代理进行SSH跳转访问

    文章来源 http www aloneray com 886 html 可能需要vpn翻墙才能访问 链接流程 本地服务器Local gt 中转服务器Jump gt 目标服务器Destination 简单来说 就是不直接访问你的目标服务器 而
  • weblogic作为文件浏览服务器,weblogic配置文件服务器

    weblogic配置文件服务器 内容精选 换一换 该任务指导用户使用Loader将数据从Hive导出到SFTP服务器 创建或获取该任务中创建Loader作业的业务用户和密码 确保用户已授权访问作业中指定的Hive表的权限 获取SFTP服务器
  • Guava库API使用部分总结

    Guava库 1 Guava是对Java API的补充 对Java开发中常用功能进行更优雅的实现 使得编码更加轻松 代码容易理解 Guava使用了多种设计模式 同时经过了很多测试 得到了越来越多开发团队的青睐 Java最新版本的API采纳了
  • MySQL试题2

    二 题目 01 查询 1 课程比 2 课程成绩高的学生的信息及课程分数 方法一 select s t1 score t2 score from select sid score from t score where cid 1 t1 sel
  • avalon.js 1.4.6简单列表数据绑定ms-repeat ms-click

    1 列表数据绑定
  • RPMB原理介绍

    RPMB介绍 RPMB Replay Protected Memory Block Partition 是 eMMC 中的一个具有安全特性的分区 eMMC 在写入数据到 RPMB 时 会校验数据的合法性 只有指定的 Host 才能够写入 同
  • matlab确定灰度阈值T,基于阈值的灰度图像提取法

    对于简单的灰度图像 如果目标与背景的灰度存在一定的差异 那么可以用阈值来提取目标 关键是确定阈值 常用方法有 模态法 P参数法 可变阈值法 大津法和迭代逼近法等 模态法 取直方图的波谷作为阈值 适用于目标与背景灰度差异较大 目标与背景的直方
  • 2021-05-27

    点三信息Java后端实习面经 长沙 1 你做这个rpc项目的动机是什么 我 为了学习 后来面试官又说我动机不明 醉了 2 讲一下BIO NIO AIO 不用AIO的话 发送过来一个包的流程是怎样的 3 零拷贝 什么情况下适用零拷贝 什么情况
  • 史上最全 55道 MySQL面试题及答案,看完碾压面试官

    前言 MySQL面试题以及答案整理 最新版 MySQL高级面试题大全 发现网上很多MySQL面试题都没有答案 所以花了很长时间搜集 本套MySQL面试题大全 汇总了大量经典的MySQL程序员面试题以及答案 包含MySQL语言常见面试题 My
  • 解决Transformer固有缺陷:复旦大学等提出线性复杂度SOFT

    作者 机器之心编辑部 来源 机器之心 来自复旦大学 萨里大学和华为诺亚方舟实验室的研究者首次提出一种无 softmax Transformer 视觉 Transformer ViT 借助 patch wise 图像标记化和自注意力机制已经在
  • 一个docker内不同参数执行个npm run

    dockerfile www wwwroot cat Dockerfile FROM node 12 18 0 alpine3 11 ARG NPM RUN ARG build ARG NPM RUN ARG TWO build story
  • qt序列帧读取

    描述 有时候ui给我们的动画是一序列的图片 播放动画需要一张一张图片读取 显得有点麻烦 存储的资源目录也显得比较凌乱 为解决这个问题 又不想使用gif 可以使用如下自定义序列帧播放组件 一次读取 通过计算当前帧的位置从内存读取当前帧 可以控
  • 027:vue中两列表数据联动,购物车添加、删除和状态更改

    第027个 查看专栏目录 VUE element UI 专栏目标 在vue和element UI联合技术栈的操控下 本专栏提供行之有效的源代码示例和信息点介绍 做到灵活运用 1 提供vue2的一些基本操作 安装 引用 模板使用 comput
  • 手机键盘字母组合

    题目 给定一个仅包含数字 2 9 的字符串 返回所有它能表示的字母组合 给出数字到字母的映射如下 与电话按键相同 注意 1 不对应任何字母 示例 输入 23 输出 ad ae af bd be bf cd ce cf 思路 根据输入的数字
  • 安卓逆向-IDA

    Java层代码是对系统层 so层 的封装 所以假如说APP开发者直接调用系统的接口而不是Java层 有些地方我们hook不出来 所以需要深入去了解so层的接口 IDA的使用 按F5可将汇编代码转C JNI OnLoad so层的hook接口
  • maria数据库随机查询_如何安装Maria DB,创建数据库和执行查询

    maria数据库随机查询 你好朋友 在本教程中 我们将看到 1 如何安装Maria DB 2 如何连接到Maria DB 创建数据库和执行查询 1 如何安装Maria DB 1 1 转到以下链接 然后单击 立即下载10 4 12稳定 按钮
  • JNPF低代码开发平台 新版3.4.6 框架源码分享

    每一个传统行业都有机会变成技术驱动的现代行业 这次疫情正在把很多原来的应急技术变成日常技术 数字化进程中最大的受益者不是互联网企业 而是用互联网改造自己的企业 独木不成林 或许JNPF快速开发平台正是意识到了这一点 才忙着织出一张密集的网
  • Python---多线程编程、基于Socket完成服务端程序开发、基于Socket完成客户端程序开发

    1 进程 程序在操作系统内运行 即成为一个运行进程 线程 进程内部可以有多个线程 程序的运行本质上就是由进程内部的线程在实际工作的 并行执行 多个进程同时在运行 即不同的程序同时运行 称之为 多任务并行执行 一个进程内的多个线程同时在运行
  • redis Hyperloglog 过滤重复

    Redis 中对 HyperLogLog 的应用 首先 在 Redis 中 HyperLogLog 是它的一种高级数据结构 提供有包含但不限于下面两条命令 pfadd key value 将 key 对应的一个 value 存入 pfcou