Redis三种特殊数据类型(Redis数据 类型下)

Redis三种特殊数据类型

1.Geospatial地理位置详解

应用:朋友圈定位、打车等应用,可以推算地理位置的信息,两地之间的距离

命令如下:

geoadd :添加地理位置

Redis三种特殊数据类型(Redis数据 类型下)_第1张图片

添加城市数据(城市名称和经纬度,一般直接通过java程序一次性导入),注意有效的经度在-180度到180度(E),有效的维度在0-90度之间(N)。

当你需要找城市时:

GEOPOS : 获取城市的经纬度,得到定位,一定是一个坐标值

Redis三种特殊数据类型(Redis数据 类型下)_第2张图片

GEODIST :返回两个给定位置之间的距离

给出单位表(单位声明在两个地方的后面)

m

单位:米

km

单位:千米

mi

单位:英里

ft

单位:英尺

Redis三种特殊数据类型(Redis数据 类型下)_第3张图片

GEORADIUS:

GEORADIUS china:city 110 30 1000 km 以110 30 这个经纬度为中心,寻找方圆1000km的城市

Redis三种特殊数据类型(Redis数据 类型下)_第4张图片

GEORADIUS china:city 110 30 500 km withdist

显示找到的地方到中心距离的位置

Redis三种特殊数据类型(Redis数据 类型下)_第5张图片

GEORADIUS china:city 110 30 500km withcoord:显示找到的地方的经纬度(定位)

Redis三种特殊数据类型(Redis数据 类型下)_第6张图片

GEORADIUS china:city 110 30 500 km withcoord withdist count 1(筛选出指定的结果)

Redis三种特殊数据类型(Redis数据 类型下)_第7张图片

GEORADIUBYMEMBER: 找出位于指定位置周围的内容

GEOHASH命令 :返回一个或多个位置元素表示,将二维的经纬度转为一维的字符串(字符串越接近则两个地方距离越近)

Redis三种特殊数据类型(Redis数据 类型下)_第8张图片

GEO实现原理就ZSET ,可以使用Zset 命令来操作GEO

比如ZRANGE 查看所有元素

Zrem 删除某个元素

Redis三种特殊数据类型(Redis数据 类型下)_第9张图片

2.Hyperloglog

什么是基数?

A(1,3,5,7,8,7)   B(1, 3,5,7,8)基数就是去重后的个数,这里基数是5 

Hyperloglog就是基数统计的算法,内存固定,占的内存很小,只需要费12KB的内存(如果用set很占内存)。

PFADD 创建一组元素

PFCOUNT mykey :统计mykey中的基数数量

PFMERGE mykey3 mykey mykey2 :将mykey和mykey2融合到mykey3中

Redis三种特殊数据类型(Redis数据 类型下)_第10张图片

3.Bitmap(位存储)

应用:可以用来统计用户信息(一般只有两个状态的都可以使用,比如登陆,未登录),都是操作二进制位来记录

只有 “0”和“1”的两个状态。

记录周一到周日的打卡(数的安排从0-6)

周一 : 1 (打卡);周二:0(未打卡)

Redis三种特殊数据类型(Redis数据 类型下)_第11张图片

查看某一天是否有打卡,用getbit

Redis三种特殊数据类型(Redis数据 类型下)_第12张图片

可以统计打卡的天数:

你可能感兴趣的:(Redis,redis,数据库,database)