当前位置: 首页 > news >正文

【redis】bitmap、hyperloglog、GEO案例

【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签到 + 布隆过滤器,案例升级


相关文章:

【redis】bitmap、hyperloglog、GEO案例

【redis】bitmap、hyperloglog、GEO案例 文章目录 【redis】bitmap、hyperloglog、GEO案例前言一、面试题二、统计的类型聚合统计排序统计问题:思路 二值统计 0和1基数统计 三、hyperloglog1、名词理解UV 独立访客PV 页面浏览量DAU 日活跃用户MAU 月活跃度 2、看需求…...

第二章:集合与区间

1.集合 1.内容概述 1.了解集合的意义2.了解常见集合符号的含义3.云用常见的集合符号来表示集合之间的关系、元素与集合之间的关系2.基本概念 1.集合:把一些确定的对象看成一个整体就形成了一个集合。集合一般使用大写字母A、B、C…来表示2.元素:集合中每一个对象叫做这个集合…...

Mysql8.0版本安装

一,使用yum方式安装 1,配置mysql安装源: sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm2,安装mysql8.0: sudo yum --enablerepo=mysql80-community inst...

开放式耳机真的比封闭式强很多吗?推荐几款主流的开放式耳机

​开放式耳机,顾名思义,就是通过骨头振动来传导声音的耳机。相比于传统耳机,它的声音传输更加开放,不会对耳膜造成压迫感,也不会对耳膜旁的内毛细胞造成损害。因此开放式耳机既是运动蓝牙耳机,又是音乐蓝牙…...

Doris(7):数据导入(Load)之Routine Load

例行导入功能为用户提供了义中自动从指定数据源进行数据导入的功能 1 适用场景 当前仅支持kafka系统进行例行导入。 2 使用限制 支持无认证的 Kafka 访问,以及通过 SSL 方式认证的 Kafka 集群。支持的消息格式为 csv 文本格式。每一个 message 为一行,…...

linux 安装php8.1 ZipArchive和libzip最新版扩展安装

1、概述 安装前咱们先看下我本地环境 [rootelk php8]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.9 (Maipo) [rootelk php8]# [rootelk php8]# ./bin/php -v PHP 8.1.18 (cli) (built: Apr 17 2023 13:15:17) (NTS) Copyright (c) The PHP Group Z…...

大数据 | 实验一:大数据系统基本实验 | 熟悉常用的HBase操作

文章目录 📚HBase安装🐇安装HBase🐇伪分布式模式配置🐇测试运行HBase🐇HBase java API编程环境配置 📚实验目的📚实验平台📚实验内容🐇HBase Shell 编程命令实现以下指定…...

Linux command(split)

原理 在split.c中,首先处理传递给split命令的参数,包括需要拆分的文件、拆分大小/行数等选项。然后,通过调用open()函数打开需要拆分的文件,并获取文件信息。接着根据选项计算每个拆分文件的大小/行数,并根据需要创建输…...

开放式耳机好用吗,盘点几款口碑不错的开放式耳机

​开放式耳机作为一种全新的耳机形态,已经成为了当前市场上非常火爆的一款产品。由于无需入耳佩戴,可以很好的避免了耳膜受到损伤,而且也能够让我们在佩戴眼镜时也能够正常使用。加上开放式耳机的音质和舒适度都要优于其他类型的耳机&#xf…...

法规标准-ISO 16787标准解读

ISO 16787是做什么的? ISO 16787全称为智能运输系统-辅助泊车系统(APS)-性能要求和测试程序,其中主要描述了对APS系统的功能要求及测试规范 APS类型 根据目标停车位类型将APS系统分为两类: 1)APS类型I&a…...

脑力劳动-英文单词

标题 前言必学场景词汇及用法会议简报电话出差市场调研广告与媒介电脑情境常用单词会议简报电话市场调研广告与媒介电脑前言 加油 必学场景词汇及用法 会议 1meeting [ˈmitɪŋ] n.会议hold / have / call off a meeting举办/取消会议be in a meeting在开会The meeting w…...

机器学习中的三个重要环节:训练、验证、测试

本文重点 模型训练、验证和测试是机器学习中的三个重要环节。这三个环节之间存在着紧密的关系,它们相互作用,共同构建出一个完整的机器学习模型。在本文中,我们将详细介绍模型训练、验证和测试之间的关系。 模型训练、验证和测试之间的关系 模型训练是机器学习中最基本的…...

机器学习实战:Python基于LDA线性判别模型进行分类预测(五)

文章目录 1 前言1.1 线性判别模型的介绍1.2 线性判别模型的应用 2 demo数据演示2.1 导入函数2.2 训练模型2.3 预测模型 3 LDA手写数字数据演示3.1 导入函数3.2 导入数据3.3 输出图像3.4 建立模型3.5 预测模型 4 讨论 1 前言 1.1 线性判别模型的介绍 线性判别模型(…...

Java枚举(Enum)

枚举(enum) enum全称enumeration,JDK 1.5中引入的新特性。在Java中,被enum关键字修饰的类型就是枚举类型 可以将枚举看成一个类,它继承于java.lang.enum类,当定义一个枚举类型时,每一个枚举类型…...

【Python】【进阶篇】二十一、Python爬虫的多线程爬虫

目录 二十一、Python爬虫的多线程爬虫21.1 多线程使用流程21.2 Queue队列模型21.3 多线程爬虫案例1) 案例分析​2) 完整程序 二十一、Python爬虫的多线程爬虫 网络爬虫程序是一种 IO 密集型程序,程序中涉及了很多网络 和 本地磁盘的 IO 操作,这会消耗大…...

Python从入门到精通14天(eval、literal_eval、exec函数的使用)

eval、literal_eval、exec函数的使用 eval函数literal_eval函数exec函数三者的区别 eval函数 eval()是Python中的内置函数,它可以将一个字符串作为参数,并将该字符串作为Python代码执行。它的语法格式为:eval(expression,globalsNone,locals…...

队列的基本操作(C语言链表实现)初始化,入队,出队,销毁,读取数据

文章目录 前言一、队列基本变量的了解二、队列的基本操作2.1队列的初始化(QueueInit)2.2入队(QueuePush)2.3判断是否为空队(QueueEmpty)2.4出队(QueuePop)2.5队列的队头数据&#xf…...

项目支付接入支付宝【沙箱环境】

前言 订单支付接入支付宝,使用支付宝提供的沙箱机制模拟为订单付款。我这里主要记录一下沙箱环境如何接入到系统中,具体细节的实现。按照官方文档来就可以了。 1、使用步骤 这里有几个重要数据要拿到,一个是支付宝的公钥和私钥&#xff0c…...

程序员应该如何提升自己

作为一名程序员,以下是您可以考虑的一些方法来提高自己的技能和知识: 深入学习编程语言和相关工具:了解您使用的编程语言和相关工具的基本原理和高级特性,以便更好地理解其工作方式并更有效地使用它们。 刻意练习:刻意…...

全球上线!ABB中国涡轮增压器分拆 – 数据清理阶段完成

ABB是数字行业的技术前沿者,拥有四项主营业务:电气化,工业自动化,运动控制以及机器人和离散自动化。ABB总部位于瑞士苏黎世,业务遍及100多个国家,拥有约105,000名员工。2021年,该公司…...

用Asian Beauty Z-Image Turbo做古风头像:简单三步生成独一无二的东方美学作品

用Asian Beauty Z-Image Turbo做古风头像:简单三步生成独一无二的东方美学作品 想象一下,你的社交媒体头像不再是一张普通的自拍或卡通形象,而是一幅充满东方韵味的古风艺术作品——可能是唐代仕女的温婉,宋代文人的儒雅&#xf…...

Wan2.2-T2V-A5B常见错误排查:运行失败、生成卡顿的解决方法

Wan2.2-T2V-A5B常见错误排查:运行失败、生成卡顿的解决方法 1. 问题概述与快速诊断 Wan2.2-T2V-A5B作为一款轻量级文本到视频生成模型,虽然在资源消耗和响应速度上具有优势,但在实际使用过程中仍可能遇到运行失败或生成卡顿的问题。这些问题…...

UDOP-large算力优化:FP16推理+FlashAttention加速UDOP-large响应速度

UDOP-large算力优化:FP16推理FlashAttention加速UDOP-large响应速度 1. 为什么你的UDOP-large模型跑得不够快? 如果你用过UDOP-large这个文档理解模型,可能会发现一个问题:处理文档图片的时候,有时候响应速度不够理想…...

如何突破思维导图协作瓶颈?云端协同与知识管理新方案

如何突破思维导图协作瓶颈?云端协同与知识管理新方案 【免费下载链接】kityminder 百度脑图 项目地址: https://gitcode.com/gh_mirrors/ki/kityminder 在数字化办公环境中,思维导图作为梳理思路、规划项目的重要工具,其价值已得到广泛…...

springboot+vue基于web的药店管理系统 药品商城在线购药系统

目录同行可拿货,招校园代理 ,本人源头供货商功能模块分析技术实现要点扩展功能建议项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块分析 后台管理系统(SpringBoot&…...

intv_ai_mk11效果对比:同一Prompt下intv_ai_mk11与Qwen2.5在代码生成任务表现

intv_ai_mk11效果对比:同一Prompt下intv_ai_mk11与Qwen2.5在代码生成任务表现 1. 测试背景与目的 在当今AI技术快速发展的背景下,代码生成已成为大语言模型的重要应用场景之一。本次测试旨在对比intv_ai_mk11与Qwen2.5两款模型在相同Prompt下的代码生成…...

实战指南:在快马平台用trae构建电商购物车状态管理系统

今天想和大家分享一个实战项目:用trae在电商场景下构建购物车状态管理系统。这个方案特别适合需要清晰数据流的中小型项目,比如电商平台、管理后台等。下面我会详细拆解整个实现过程,希望能给有类似需求的同学一些参考。 项目结构设计 首先…...

BetterNCM Installer插件管理器:网易云音乐用户的功能扩展工具

BetterNCM Installer插件管理器:网易云音乐用户的功能扩展工具 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM Installer是面向网易云音乐PC用户的插件管理工具&…...

【ArkTS】基础语法

一、ArkTS 语言简介 ArkTS 是一种设计用于构建高性能应用的编程语言。它在继承 TypeScript 语法的基础上进行了优化,以提供更高的性能和开发效率。 许多编程语言在设计之初未考虑移动设备,导致应用运行缓慢、低效且功耗大。随着移动设备在日常生活中越来越普遍,针对移动环境…...

在Python项目中是否应该采用分层结构

在学习Python的过程中,许多开发人员会发现,一些Django项目在视图函数中包含了大量的业务逻辑,类似于Java中的控制器进行过多的业务处理。这导致了一个关键问题:Python项目是否应该采用分层结构?这与MVC(模型-视图-控制…...