在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

redis中的三种特殊数据类型

133次阅读
没有评论

共计 4739 个字符,预计需要花费 12 分钟才能阅读完成。

本篇内容主要讲解“redis 中的三种特殊数据类型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“redis 中的三种特殊数据类型”吧!

redis 三种特殊的数据类型

Geospatial 地理位置

Hyperloglog 基数统计

Bitmap 位图场景

Geospatial 地理位置

redis 3.2 版本就推出了  Geospatial

官方文档上可以详细的看到用法:

https://www.redis.net.cn/order/3685.html

Geospatial 可以使用在如下场景:

附近的人

打车计算距离

朋友定位

等一系列跟定位有关的场景

Geospatial 只有 六个命令

GEOADD

GEODIST

GEOHASH

GEOPOS

GEORADIUS

GEORADIUSBYMEMBER

GEOADD

添加地理位置

有效的经度从 -180 度到 180 度。

有效的纬度从 -85.05112878 度到 85.05112878 度。

当坐标位置超出上述指定范围时,该命令将会返回一个错误。

GEOADD key [NX|XX] [CH] longitude latitude member [longitude latitude member …]

添加经纬度,城市名

127.0.0.1:6379  GEOADD city 113.087559 28.251818 changsha
(integer) 1
127.0.0.1:6379  GEOADD city 114.064552 22.548457 shenzhen
(integer) 1
127.0.0.1:6379  GEOADD city 104.087045 30.666416 chengdu
(integer) 1
127.0.0.1:6379  GEOADD city 118.802422 32.064653 nanjing
(integer) 1
127.0.0.1:6379  GEOADD city 106.558434 29.568996 chongqing
(integer) 1
127.0.0.1:6379  GEOADD city 121.463615 31.195908 shanghai
(integer) 1
127.0.0.1:6379  GEOADD city 117.208093 39.091103 tianjin
(integer) 1

GEOPOS

GEOPOS key member [member …]

获取指定城市的经纬度信息

127.0.0.1:6379  GEOPOS city changsha
1) 1)  113.08755666017532349 
 2)  28.25181827470789386 
127.0.0.1:6379  GEOPOS city tianjin
1) 1)  117.20809489488601685 
 2)  39.0911021322545551

GEODIST

GEODIST key member1 member2 [m|km|ft|mi]

其中有如下 4 个单位:

m:米

km:公里

ft:英尺

mi:英里

获取两个城市之间的距离

127.0.0.1:6379  GEODIST city changsha tianjin
 1264101.6876 
127.0.0.1:6379  GEODIST city changsha tianjin km
 1264.1017 
127.0.0.1:6379  GEODIST city changsha shenzhen km
 641.9034

GEOHASH

GEOHASH key member [member …]

返回一个或者多个 GEOHASH 表示的元素,返回 11 个字符 Geohash 字符串

127.0.0.1:6379  GEOHASH city changsha
1)  wt02tr5fg00 
127.0.0.1:6379  GEOHASH city changsha beijing
1)  wt02tr5fg00 
2) (nil)
127.0.0.1:6379  GEOHASH city changsha beijing tianjin chongqing
1)  wt02tr5fg00 
2) (nil)
3)  wwgq7hk64t0 
4)  wm7b0yc7zk0

GEORADIUS

GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOR

指定经纬度作为原点,指定半径,查询在指定范围内的城市,这些城市都是在我们自己的集合里面

127.0.0.1:6379  GEORADIUS city 110 30 500 m
(empty array)
127.0.0.1:6379  GEORADIUS city 110 30 500 km
1)  chongqing 
2)  changsha 
127.0.0.1:6379  GEORADIUS city 110 30 1000 km
1)  chongqing 
2)  chengdu 
3)  shenzhen 
4)  changsha 
5)  nanjing 
127.0.0.1:6379  GEORADIUS city 110 30 700 km withcoord
1) 1)  chongqing 
 2) 1)  106.55843228101730347 
 2)  29.56899626404301529 
2) 1)  chengdu 
 2) 1)  104.08704489469528198 
 2)  30.6664164635846177 
3) 1)  changsha 
 2) 1)  113.08755666017532349 
 2)  28.25181827470789386 
127.0.0.1:6379  GEORADIUS city 110 30 700 km withdist
1) 1)  chongqing 
 2)  335.6530 
2) 1)  chengdu 
 2)  572.3911 
3) 1)  changsha 
 2)  357.4711 
127.0.0.1:6379  GEORADIUS city 110 30 700 km withhash
1) 1)  chongqing 
 2) (integer) 4026059435699931
2) 1)  chengdu 
 2) (integer) 4026137831798506
3) 1)  changsha 
 2) (integer) 4050903792284309

GEORADIUSBYMEMBER

GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]

找出位于指定元素周围的城市

127.0.0.1:6379  GEORADIUSBYMEMBER city tianjin 1000 km
1)  nanjing 
2)  tianjin 
3)  shanghai 
127.0.0.1:6379  GEORADIUSBYMEMBER city tianjin 500 km
1)  tianjin 
127.0.0.1:6379  GEORADIUSBYMEMBER city tianjin 5000 km
1)  chongqing 
2)  chengdu 
3)  shenzhen 
4)  changsha 
5)  shanghai 
6)  nanjing 
7)  tianjin

Geospatial 底层的原理就是使用 Zset 有序集合来实现的,我们可以使用 Zset 有序集合的命令来操作 Geo,咱们是用 Zset 的指令来感受一波

127.0.0.1:6379  ZRANGE city 0 -1
1)  chongqing 
2)  chengdu 
3)  shenzhen 
4)  changsha 
5)  shanghai 
6)  nanjing 
7)  tianjin 
127.0.0.1:6379  ZCARD city
(integer) 7

Hyperloglog 基数统计

基数是个啥?

基数,就是不重复的数,例如:

A = {1,2,3,4,5}

B = {2,3,4,5,6}

那么 A 和 B 的取并集的基数就是 6

简介

Hyperloglog 是 redis 2.8.9 版本开始有的这种数据结构

redis hyperloglog 基数统计也是一种算法

例如有这样的应用场景:

网页访问人数统计,同一个用户多次访问网站,也是只算作 1

传统的方式是使用 set 集合的方式来保存 id,统计 set 里面 id 的个数,来计算人数

这种方式也没有问题,但是若数据量很大的时候,就会非常麻烦,因为我们拿 id 是没有用的,我们只需要计数而已

优点

      Hyperloglog   占用的内存空间是固定的,2^16 次方,只需要占用 12 KB 内存,从内存的角度来技术选型,Hyperloglog   是首选哦

PFADD key element [element …]

向 Hyperloglog   中添加一个或者多个元素

PFMERGE destkey sourcekey [sourcekey …]

将多个 Hyperloglog   取并集,得到一个结果 Hyperloglog,里面的数据是不会重复的

127.0.0.1:6379  PFADD myhash 1 2 3 4 5 6 7 8
(integer) 1
127.0.0.1:6379  pfadd myhash3 3 4 5 6 7 8 9 0 88 99
(integer) 1
127.0.0.1:6379  PFMERGE res myhash myhash3
127.0.0.1:6379  PFCOUNT res
(integer) 12
127.0.0.1:6379  PFCOUNT myhash
(integer) 8
127.0.0.1:6379  PFCOUNT myhash3
(integer) 10

Bitmaps 位图场景

Bitmaps 位图,位存储

一般用于,统计用户信息,活跃,不活跃,

登录,不登录

打卡,不打卡 等等,两种状态

Bitmaps 位图,也是一种数据结构,是操作二进制的方式来进行记录的,只有 0   和 1 两种状态

例如我们举个例子,来记录着一周每天的心情,1 是开心,0 是沮丧

SETBIT key offset value

设置 bit 位的值

GETBIT key offset

获取 bit 位的值

127.0.0.1:6379  SETBIT week 0 1
(integer) 0
127.0.0.1:6379  SETBIT week 1 1
(integer) 0
127.0.0.1:6379  SETBIT week 2 1
(integer) 0
127.0.0.1:6379  SETBIT week 3 0
(integer) 0
127.0.0.1:6379  SETBIT week 4 0
(integer) 0
127.0.0.1:6379  SETBIT week 5 1
(integer) 0
127.0.0.1:6379  SETBIT week 6 1
(integer) 0
127.0.0.1:6379  GETBIT week 6
(integer) 1
127.0.0.1:6379  GETBIT week 5
(integer) 1

到此,相信大家对“redis 中的三种特殊数据类型”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计4739字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产综合在线观看视频 | 欧美成人秋霞久久aa片 | 国产电影在线观看视频 | 午夜免费观看 | 国产精品色婷婷在线观看 | 精品国产91久久久久久久a | 日本黄视频在线播放 | 久热这里只有 | 欧美19综合中文字幕 | 精彩视频一区二区 | 国产麻豆剧传媒精品国产av | 一级午夜a毛片免费视频 | 免费国产网站 | 无码国产精品一区二区免费i6 | 四虎在线精品观看免费 | 99久久99视频 | 国产激情无码视频在线播放性色 | 一道精品一区二区三区 | 国产在播放一区 | 成人午夜在线观看 | 国产成人无码一区二区三区在线 | 污网址免费| a毛片免费在线观看 | 亚洲免费大片 | 欧美亚洲日韩国产人成在线播放 | 性高潮动态图 | 成人免费黄色网 | 国产婷婷一区二区三区 | 色综合久久中文字幕无码 | 国产欧美日韩中文久久 | 色欲天天天天天综合网 | 久久久久爽爽爽爽一区老女人 | 美国一级毛片免费视频观看 | 一本大道在线无码一区 | 狠狠五月深爱婷婷网 | 国产欧美精品系列在线播放 | 免费无码又爽又刺激高潮视频 | 一区二区三区在线 | 日本 | 91视频免费观看高清观看完整 | 欧美顶级少妇做爰hd | 国产欧美日本在线观看 |