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


前言

【redis】bitmap、hyperloglog、GEO案例_第1张图片


一、面试题

面试题1
【redis】bitmap、hyperloglog、GEO案例_第2张图片
面试题2
【redis】bitmap、hyperloglog、GEO案例_第3张图片

需求痛点
【redis】bitmap、hyperloglog、GEO案例_第4张图片


二、统计的类型

【redis】bitmap、hyperloglog、GEO案例_第5张图片

聚合统计

【redis】bitmap、hyperloglog、GEO案例_第6张图片

命令:
【redis】bitmap、hyperloglog、GEO案例_第7张图片

排序统计

【redis】bitmap、hyperloglog、GEO案例_第8张图片

问题:

【redis】bitmap、hyperloglog、GEO案例_第9张图片

思路

【redis】bitmap、hyperloglog、GEO案例_第10张图片

二值统计 0和1

【redis】bitmap、hyperloglog、GEO案例_第11张图片

基数统计

【redis】bitmap、hyperloglog、GEO案例_第12张图片


三、hyperloglog

【redis】bitmap、hyperloglog、GEO案例_第13张图片

1、名词理解

UV 独立访客

在这里插入图片描述

PV 页面浏览量

【redis】bitmap、hyperloglog、GEO案例_第14张图片

DAU 日活跃用户

在这里插入图片描述

MAU 月活跃度

在这里插入图片描述

2、看需求

【redis】bitmap、hyperloglog、GEO案例_第15张图片

3、是什么(复习)

【redis】bitmap、hyperloglog、GEO案例_第16张图片
基本操作命令
【redis】bitmap、hyperloglog、GEO案例_第17张图片

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

【redis】bitmap、hyperloglog、GEO案例_第18张图片

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

【redis】bitmap、hyperloglog、GEO案例_第19张图片

办法:概率算法

【redis】bitmap、hyperloglog、GEO案例_第20张图片

原理说明

【redis】bitmap、hyperloglog、GEO案例_第21张图片

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

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

a、需求

【redis】bitmap、hyperloglog、GEO案例_第22张图片

b、方案讨论

【redis】bitmap、hyperloglog、GEO案例_第23张图片

用redis的hash结构存储 说明

【redis】bitmap、hyperloglog、GEO案例_第24张图片

hyperloglog

【redis】bitmap、hyperloglog、GEO案例_第25张图片

c、HyperLoglogService

插入hyperloglog的service
【redis】bitmap、hyperloglog、GEO案例_第26张图片
获取存入的key的点击量值
【redis】bitmap、hyperloglog、GEO案例_第27张图片

d、HyperLoglogController

【redis】bitmap、hyperloglog、GEO案例_第28张图片


四、GEO

【redis】bitmap、hyperloglog、GEO案例_第29张图片

1、面试题

【redis】bitmap、hyperloglog、GEO案例_第30张图片

2、经纬度

不具体解释

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

【redis】bitmap、hyperloglog、GEO案例_第31张图片

4、复习GEO命令

【redis】bitmap、hyperloglog、GEO案例_第32张图片

添加 经纬度坐标 + 名字

【redis】bitmap、hyperloglog、GEO案例_第33张图片

根据名字 查询 经纬度

【redis】bitmap、hyperloglog、GEO案例_第34张图片

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

【redis】bitmap、hyperloglog、GEO案例_第35张图片

两个位置之间的距离

【redis】bitmap、hyperloglog、GEO案例_第36张图片

GEORADIUS 输入坐标

在这里插入图片描述
【redis】bitmap、hyperloglog、GEO案例_第37张图片
【redis】bitmap、hyperloglog、GEO案例_第38张图片

GEORADIUSBYMEMBER 输入名字

【redis】bitmap、hyperloglog、GEO案例_第39张图片

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

需求分析

【redis】bitmap、hyperloglog、GEO案例_第40张图片

架构设计

在这里插入图片描述

编码实现

【redis】bitmap、hyperloglog、GEO案例_第41张图片

controller

【redis】bitmap、hyperloglog、GEO案例_第42张图片

service

添加
【redis】bitmap、hyperloglog、GEO案例_第43张图片

获取经纬度
【redis】bitmap、hyperloglog、GEO案例_第44张图片

获取base32编码值
【redis】bitmap、hyperloglog、GEO案例_第45张图片

获取给定两个点的距离
【redis】bitmap、hyperloglog、GEO案例_第46张图片

通过经纬度查找附近 GEORADIUS
【redis】bitmap、hyperloglog、GEO案例_第47张图片

通过名字查找附近 GEORADIUSBYMEMBER
【redis】bitmap、hyperloglog、GEO案例_第48张图片


五、bitmap

1、面试

【redis】bitmap、hyperloglog、GEO案例_第49张图片

2、是什么

在这里插入图片描述

3、能干嘛

【redis】bitmap、hyperloglog、GEO案例_第50张图片

4、京东签到领京豆

mysql方式—
【redis】bitmap、hyperloglog、GEO案例_第51张图片

redis方式----
【redis】bitmap、hyperloglog、GEO案例_第52张图片

5、复习命令

【redis】bitmap、hyperloglog、GEO案例_第53张图片
【redis】bitmap、hyperloglog、GEO案例_第54张图片

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


你可能感兴趣的:(redis,redis,数据库,面试)