IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis学习之三种特殊类型 -> 正文阅读

[大数据]Redis学习之三种特殊类型

目录

三种特殊类型:

Geospatial

? ? ? ? 基本方法

? ? ? ? 演示:

Hyperloglog

? ? ? ?简介

? ? ? ?演示:

? ? ? 场景

Bitmap

? ? ? ?测试

????????场景


三种特殊类型:

? ? ? ? Geospatial(地理位置)

? ? ? ? Hyperloglog(基数统计)

? ? ? ? Bitmap(位图场景)

Geospatial

? ? ? ? 简称geo,主要用于存储地理位置信息,并对内存的信息进行操作

? ? ? ? 基本方法

? ? ? ? geoadd:添加地理位置坐标

? ? ? ? geopos:获取地址位置坐标

? ? ? ? geodist:计算两个位置之间的距离

? ? ? ? georadius:根据给定的经纬度来获取指定方位内的地理位置集合

? ? ? ? georadiusbymember:根据给定地点获取指定范围内的坐标集合

? ? ? ? 演示:

# 1、添加
127.0.0.1:6379> geoadd china:city 116.405285 39.904989 beijing
(integer) 1
127.0.0.1:6379> geoadd china:city 113.665412 34.757975 zhengzhou
(integer) 1
127.0.0.1:6379> geoadd china:city 121.472644 31.231706 shanghai
(integer) 1
127.0.0.1:6379> GEOADD china:city 120.153576 30.287459 hangzhou
(integer) 1
127.0.0.1:6379> GEOADD china:city 114.085947 22.547 shenzhen
(integer) 1

# 2、查看坐标
127.0.0.1:6379> GEOPOS china:city shenzhen
1) 1) "114.08594459295272827"
   2) "22.54699993773966327"

# 3、查看两个成员之间的距离
127.0.0.1:6379> GEODIST china:city beijing shenzhen
"1943024.0448"
127.0.0.1:6379> GEODIST china:city beijing zhengzhou
"621563.5619"

# 4、根据坐标查看范围内的成员
127.0.0.1:6379> GEORADIUS china:city 116.405285 39.904989 1000 km
1) "zhengzhou"
2) "beijing"

# 5、根据成员查看范围内的成员
127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 1000 km
1) "zhengzhou"
2) "beijing"

? ? ? ? GEO底层实现原理就是ZSET,可以使用ZSET的命令来操作geo!!

127.0.0.1:6379> ZRANGE china:city 0 -1
1) "shenzhen"
2) "hangzhou"
3) "shanghai"
4) "zhengzhou"
5) "beijing"
127.0.0.1:6379> ZREM china:city beijing
(integer) 1
127.0.0.1:6379> ZRANGE china:city 0 -1
1) "shenzhen"
2) "hangzhou"
3) "shanghai"
4) "zhengzhou"

Hyperloglog

? ? ? ? 什么是基数:

? ? ? ? A{1,3,5,7,8,7}? ? ? ? B{1,3,5,7,8}

? ? ? ? 基数(不重复的数字)=5,可以接受误差

? ? ? ?简介

? ? ? ? ? ? ? ? -Redis Hyperloglog 基数统计的算法!!

? ? ? ? ? ? ? ? -优点:占用的内存是固定的!2^64不同的元素的技术,只需要占用12KB的内存!

? ? ? ?演示:

# 创建第一个数据集合
127.0.0.1:6379> PFADD mypf1 a b c d e f g h j
(integer) 1

# 创建第二个数据集合
127.0.0.1:6379> PFADD mypf2 i j z x c v b n m
(integer) 1

# 查看集合一中数据的数量
127.0.0.1:6379> PFCOUNT mypf1 
(integer) 9

# 查看集合二中数据的数量
127.0.0.1:6379> PFCOUNT mypf2 
(integer) 9

# 合并一和二到一种
127.0.0.1:6379> PFMERGE mypf1 mypf2
OK

# 查看集合一
127.0.0.1:6379> PFCOUNT mypf1
(integer) 15

? ? ? 场景

? ? ? ? 网站的UV(一个人访问网站多次,但是还是算作一个人)

? ? ? ? 传统的方式,set用户的id,然后就可以统一set中元素数量作为判断标准!

? ? ? ? 这种方式大量存储用户的id,比较麻烦!我们的目的是为了计数!

? ? ? ? 这种方式有0.81%的错误错误率,如果是UV的话,可以忽略不计!!

Bitmap

? ? ? ?测试

? ? ? ? 用bitmap来统计用户一周的打卡!使用0(未打卡)、1(打卡)来进行统计!

# 记录周一到周日的状态
127.0.0.1:6379> SETBIT sign 0 0
(integer) 0
127.0.0.1:6379> SETBIT sign 1 1
(integer) 0
127.0.0.1:6379> SETBIT sign 2 0
(integer) 0
127.0.0.1:6379> SETBIT sign 3 0
(integer) 0
127.0.0.1:6379> SETBIT sign 4 1
(integer) 0
127.0.0.1:6379> SETBIT sign 5 1
(integer) 0
127.0.0.1:6379> SETBIT sign 6 1
(integer) 0

#查看具体日期打卡情况
127.0.0.1:6379> GETBIT sign 1
(integer) 1

# 统计数量
127.0.0.1:6379> BITCOUNT sign
(integer) 4

????????场景

? ? ? ? 统计用户信息,活跃、不活跃!登录、未登录!打卡、未打卡!两个状态,都可以使用bitmap

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-07 13:54:36  更:2021-10-07 13:55:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:35:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码