【redis】bitmap、hyperloglog、GEO案例

news2025/1/11 7:41:20

【redis】bitmap、hyperloglog、GEO案例


文章目录

  • 【redis】bitmap、hyperloglog、GEO案例
  • 前言
  • 一、面试题
  • 二、统计的类型
    • 聚合统计
    • 排序统计
      • 问题:
      • 思路
    • 二值统计 0和1
    • 基数统计
  • 三、hyperloglog
    • 1、名词理解
      • UV 独立访客
      • PV 页面浏览量
      • DAU 日活跃用户
      • MAU 月活跃度
    • 2、看需求
    • 3、是什么(复习)
    • 4、hyperloglog如何做的?如何演化而来
      • 去重统计中可以用到bitmap 但是同样有问题
      • 办法:概率算法
      • `原理说明`
    • 5、淘宝首页亿级UV的redis统计方案
      • a、需求
      • b、方案讨论
        • 用redis的hash结构存储 说明
        • hyperloglog
      • c、HyperLoglogService
      • d、HyperLoglogController
  • 四、GEO
    • 1、面试题
    • 2、经纬度
    • 3、获取某个位置的经纬度
    • 4、复习GEO命令
      • 添加 经纬度坐标 + 名字
      • 根据名字 查询 经纬度
      • 返回经纬度的geohash表示 获取base32编码值
      • 两个位置之间的距离
      • GEORADIUS 输入坐标
      • GEORADIUSBYMEMBER 输入名字
    • 5、美团地图位置附近的酒店推送
      • 需求分析
      • 架构设计
      • 编码实现
        • controller
        • service
  • 五、bitmap
    • 1、面试
    • 2、是什么
    • 3、能干嘛
    • 4、京东签到领京豆
    • 5、复习命令
    • 6、案例实战见下一章,bitmap签到 + 布隆过滤器,案例升级


前言

在这里插入图片描述


一、面试题

面试题1
在这里插入图片描述
面试题2
在这里插入图片描述

需求痛点
在这里插入图片描述


二、统计的类型

在这里插入图片描述

聚合统计

在这里插入图片描述

命令:
在这里插入图片描述

排序统计

在这里插入图片描述

问题:

在这里插入图片描述

思路

在这里插入图片描述

二值统计 0和1

在这里插入图片描述

基数统计

在这里插入图片描述


三、hyperloglog

在这里插入图片描述

1、名词理解

UV 独立访客

在这里插入图片描述

PV 页面浏览量

在这里插入图片描述

DAU 日活跃用户

在这里插入图片描述

MAU 月活跃度

在这里插入图片描述

2、看需求

在这里插入图片描述

3、是什么(复习)

在这里插入图片描述
基本操作命令
在这里插入图片描述

4、hyperloglog如何做的?如何演化而来

在这里插入图片描述

去重统计中可以用到bitmap 但是同样有问题

在这里插入图片描述

办法:概率算法

在这里插入图片描述

原理说明

在这里插入图片描述

误差为0.81%的说明:来自于redis官网
在这里插入图片描述

5、淘宝首页亿级UV的redis统计方案

a、需求

在这里插入图片描述

b、方案讨论

在这里插入图片描述

用redis的hash结构存储 说明

在这里插入图片描述

hyperloglog

在这里插入图片描述

c、HyperLoglogService

插入hyperloglog的service
在这里插入图片描述
获取存入的key的点击量值
在这里插入图片描述

d、HyperLoglogController

在这里插入图片描述


四、GEO

在这里插入图片描述

1、面试题

在这里插入图片描述

2、经纬度

不具体解释

3、获取某个位置的经纬度

在这里插入图片描述

4、复习GEO命令

在这里插入图片描述

添加 经纬度坐标 + 名字

在这里插入图片描述

根据名字 查询 经纬度

在这里插入图片描述

返回经纬度的geohash表示 获取base32编码值

在这里插入图片描述

两个位置之间的距离

在这里插入图片描述

GEORADIUS 输入坐标

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

GEORADIUSBYMEMBER 输入名字

在这里插入图片描述

5、美团地图位置附近的酒店推送

需求分析

在这里插入图片描述

架构设计

在这里插入图片描述

编码实现

在这里插入图片描述

controller

在这里插入图片描述

service

添加
在这里插入图片描述

获取经纬度
在这里插入图片描述

获取base32编码值
在这里插入图片描述

获取给定两个点的距离
在这里插入图片描述

通过经纬度查找附近 GEORADIUS
在这里插入图片描述

通过名字查找附近 GEORADIUSBYMEMBER
在这里插入图片描述


五、bitmap

1、面试

在这里插入图片描述

2、是什么

在这里插入图片描述

3、能干嘛

在这里插入图片描述

4、京东签到领京豆

mysql方式—
在这里插入图片描述

redis方式----
在这里插入图片描述

5、复习命令


在这里插入图片描述

6、案例实战见下一章,bitmap签到 + 布隆过滤器,案例升级


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/436545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

愚蠢的往事-网络安全专题之数字证书

血泪教训史,我被骗去办理了数字证书。 文章目录 加密算法摘要算法数字签名数字证书血泪开篇数字证书 加密算法 相关知识点:对称加密算法、非对称加密算法、信息完整性验证算法。 对称加密算法:1.加密密钥和解密密钥相同的算法,…

小行助学答题系统编程等级考试scratch三级真题2023年3月(含题库答题软件账号)

青少年编程等级考试scratch真题答题考试系统请点击 电子学会-全国青少年编程等级考试真题Scratch一级(2019年3月)在线答题_程序猿下山的博客-CSDN博客_小航答题助手 1.计算“248……128”,用变量n表示每项,根据变化规律&#xf…

SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈

http客户端Feign &#xff08;一&#xff09;基于Feign远程调用 1、RestTemplate方式调用存在的问题 2、Feign的介绍 3、定义和使用Feign客户端 这个接口里面将来的封装的就是所有对userservice发起的远程调用 1、orderserivce的pom <!--feign客户端依赖--> <depe…

Dsq: 用于针对JSON、CSV、Excel、Parquet等运行SQL查询的命令行工具

目录 About Install macOS Homebrew macOS、Linux和WSL上的二进制文件 Windows上的二进制文件&#xff08;非WSL&#xff09; 从源代码生成和安装 Usage Pretty print dsq的管道数据 多个文件和连接 无需查询即可将数据转换为JSON 嵌套在对象中的对象数组 嵌套对象…

ASRock Z690 Extreme WiFi 6E i7 13700KF电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件型号驱动情况 主板ASRock Z690 Extreme WiFi 6E 处理器Intel Core i7 13700KF已驱动 内存KINGBANK 2x32GB DDR4-3600CL18已驱动 硬盘Predator SSD GM7000 1TB已驱动…

qt5.15.2配置android

qt安装安卓编译器就直接跳过&#xff0c;我们开始将如何进行配置。 如果专门开发的app&#xff0c;则应该使用android进行开发&#xff0c;qt是熟悉qt语言&#xff0c;或者app需要进行跨平台的话则使用qt for android比较好。 下载 首先安装jdk&#xff0c;最好安装 jdk11&am…

[Java] Socket (UDP , TCP)

目录 什么是Socket ? TCP api 与 UDP api 的特点 : UDP api 使用UDP Socket 实现一个单词翻译 : TCP api 使用TCP协议来实现一个回显服务 什么是Socket ? 应用层和传输层之间的桥梁 . 程序猿写网络代码 (应用层) , 要想发送这个数据 , 就需要去调用下层协议 , 应用层…

uniapp图片转base64及JS各文件类型相互转换

uniapp图片转base64及JS各文件类型相互转换 1、chooseImage request arrayBufferToBase642、chooseImage getFileSystemManager3、chooseImage FileReader4、扩展-JS各文件类型相互转换4.1 File 转成 ArrayBuffer4.2 File 转成 blob4.3 File 转成 base644.4 ArrayBuffer 转…

【数据结构】前序遍历,中序遍历,后序遍历(二叉树)

一&#xff1a;给图求前序&#xff0c;中序&#xff0c;后序 前序遍历&#xff08;先序遍历&#xff09; 核心思想&#xff1a;根左右 前序序列&#xff1a;ABDEFCGH 先访问根结点A&#xff0c;打印A&#xff0c;然后访问左子树&#xff0c;此时左子树B又作为根节点&#xf…

JAVAWeb05-xml、DOM4J

1. xml概述 1.1 官方文档 地址: https://www.w3school.com.cn/xml/index.asp 1.2 为什么需要 XML 需求 1 : 两个程序间进行数据通信&#xff1f;需求 2 : 给一台服务器&#xff0c;做一个配置文件&#xff0c;当服务器程序启动时&#xff0c;去读取它应当监听的端口号、还有…

【数字人】使用Metahuman创建数字人模型(上)

这两年数字人类的概念可谓是风头正盛&#xff0c;市面上也流行起各式各样的数字人技术&#xff0c;效果能力及实现成本各不相同。本系列介绍基于Unreal Engine的Metahuman工具低成本构建一个拥有完整的控制权、免费、可商用、高仿真的数字人。本篇为构建基础人物模型 MetaHuma…

PHP快速入门14-Composer包管理安装与使用,附常见的20个使用例子

文章目录 前言一、关于Composer二、如何安装Composer2.1 Windows安装Composer2.2 Linux安装Composer 三、Composer常见的20个使用例子3.1 查找并安装依赖包3.2 更新依赖包3.3 安装指定版本的依赖包3.4 卸载依赖包3.5 查看当前项目依赖包列表3.6 初始化composer.json文件3.7 安装…

FAT32文件系统学习

FAT32文件系统组成及介绍 FAT32文件系统结构图&#xff1a; 下图演示了FAT32文件系统的DBR&#xff1a; 1.DBR及其保留扇区&#xff1a;含义是DOS引导记录&#xff0c;也称为操作系统引导记录&#xff0c;在DBR之后往往有一些保留扇区 跳转指令&#xff1a;跳转指令本身占用2字…

python程序打包成可执行文件【进阶篇】

python程序打包成可执行文件【进阶篇】 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 python程序打包成可执行文件【进阶篇】[TOC](文章目录) 前言安装PyInstaller包打包深度学习模型生成spec文件修改spec文件运行spec文件进行打包执行exe可执…

为什么倒谱可以分析回声

一个有趣的现象&#xff1a;倒谱上的第一个峰&#xff0c;恰好对应回声相比原声的延时。回声 y y y 是原始声音 x x x 延迟 t 0 t_0 t0​ 秒后的、带有衰减 α α α 的副本 y α x ( t − t 0 ) y αx (t - t_0) yαx(t−t0​) 方便起见&#xff0c;这里取 α 1 α …

抖音强势入局服装生意,出手就是1个亿,服装实体店出路在哪?

最近&#xff0c;抖音盯上了服装生意。 据悉&#xff0c;抖音近期组建了一个自营服装团队&#xff0c;在APP推出了一家“飞云织上”的店铺&#xff0c;店铺主体公司是“上海歆湃信息科技有限公司”。 根据爱企查显示&#xff0c;这家公司由抖音集团&#xff08;香港&#xff09…

RabbitMQ-消息模型

什么是MQ MQ全称是Message Queue,即消息对列&#xff01;消息队列是典型的&#xff1a;生产者、消费者模型。生产者不断向消息队列中生产消息&#xff0c;消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的&#xff0c;而且只关心消息的发送和接收&#xff0c;没…

IPV4与IPV6是什么?有什么区别?

目录 一. IPV4是什么&#xff1f; 二. IPV6是什么 三. IPv4和IPv6有什么区别&#xff1f; 1.地址类型 2.数据包大小 3.header区域字段数 4.可选字段 5.配置 6.安全性 7.与移动设备的兼容性 8.主要功能 IP协议&#xff08;互联网协议&#xff09;是互联网协议群&#…

USB TO SPI / USB TO I2C 软件概要 6--- 专业版调试器

所需设备&#xff1a; 1、USB转SPI_I2C适配器(专业版); 软件概述&#xff1a; SPI类: USB TO SPI 1.0-Slave SPI从机软件&#xff0c;适合单步调试&#xff0c;支持SPI工作模式0、1、2、3&#xff0c;自动跟随主机通讯速率&#xff0c;自动接收数据&#xff1b; USB TO S…

大城市的IT岗位,饱和了么?

现在学或即将更要学习IT专业的同学&#xff0c;经常会考虑这样一个问题&#xff1a;现在的计算机专业到处都有&#xff0c;大学里有、职业学校有&#xff0c;就连社会上的培训机构也有&#xff0c;而且专业分类更细化&#xff0c;有这么多的地方都在培训计算机相关专业&#xf…