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

Redis三种特殊数据类型

1.Geospatial地理位置详解

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

命令如下:

geoadd :添加地理位置

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

当你需要找城市时:

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

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

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

m

单位:米

km

单位:千米

mi

单位:英里

ft

单位:英尺

GEORADIUS:

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

GEORADIUS china:city 110 30 500 km withdist

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

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

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

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

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

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

比如ZRANGE 查看所有元素

Zrem 删除某个元素

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中

3.Bitmap(位存储)

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

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

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

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

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

可以统计打卡的天数:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值