Redis--4.入门(特殊数据类型)

1.Geospatial  地理位置 

Redis的Geo在Redis3.2版本就推出了!这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人!

先准备一些城市地区的经纬度,查询工具:经纬度查询 - 坐标拾取系统

GEOADD  key 经度 纬度 位置名称 :添加地理位置

有效的经度从-1 80度到180度;有效的纬度从-85.05112878度到85.05112878度。当坐标位置超出上述指定范围时,该命令将会返回一个错误。

GEOPOS :获取指定的经度纬度,key中存的越多,结果就越精确,因为它只查找key中的元素

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

如果两个位置之间的其中一个不存在 ,那么命令返回空值。
指定单位的参数unit必须是以下单位的其中一个:
m示单位为米。
km表示单位为千米。
mi示单位为英里。
ft表示单位为英尺。
如果用户没有显式地指定单位参数,那么GEODIST默认使用m(米)作为单位。
GEODIST命令在计算距离时会假设地球为完美的球形,在极限情况下,这-假设最大会造成0.5%的误差。

GEOREDIUS:以给定的经纬度为中心,查找某一半径下的位置

GEORAD IUSBYMEMBER :以指定的元素为中心查找指定距离内的位置

GEOHASH :返回一个或多个位置元素的Geohash表示,该命令将返回1 1个字符的Geohash字符串!(用的比较少) 

 GEO底层的实现原理其实就是Zset !我们可以使用Zset命令来操作geo !

如下:用ZSET的命令操作GEO

2.Hyperloglog  基数统计

先自行了解什么是基数。

PFADD:添加一个键为key的集合

PFCOUNT:统计集合中的不重复元素

PFMERGE:合并集合

Redis Hyperloglog基数统计的算法!
优点:占用的内存是固定, 2^64不同的元素的技术,只需要废12KB内存!如果要从内存角度来比较的话Hyperloglog首选!
网页的UV (一个人访问一一个网站多次,但是还是算作一个人! )
传统的方式,set保存用户的id ,然后就可以统计set中的元素数量作为标准判断! 
这个方式如果保存大量的用户id ,就会比较麻烦!我们的目的是为了计数,而不是保存用户id ;0.81%错误率!统计UV任务,可以忽略不计的!

3)Bitmaps  位图

用于存储两个状态的值,用0和1表示

SETBIT:用于存储一个位图,语法:SETBIT key offset value 
比如一周打卡的记录存储:用0表示未打卡,用1表示打卡了,就可以这样存

GETBIT:用于获取指定key的bitmap对应的某位置上的值,语法:GETBIT key offset

比如获取上面这一周中的周四和周六是否打卡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值