Redis的3种特殊数据类型1.Geospatial地理位置详解应用:在爆胎定位、打车等应用中,可以推算地理位置信息、两地点之间的距离
命令如下:
geoadd :添加地理位置
添加城市数据(城市名称和纬度和经度,通常直接通过java程序一次导入),注意有效经度为-180度到180度(e ),有效维度为0-90度之间) n。
如果奇怪的铅笔需要找城市:
GEOPOS :取得城市的纬度经度,确定位置,一定是坐标值
GEODIST :返回两个指定位置之间的距离
发出单位表(单位宣言在两处后面) )。
米
单位:米
千米
单位:公里
mi
单位:英里
ft
单位:英尺
GEORADIUS :
以georadiuschina : city 110301000km 11030这个纬度和经度为中心,寻找方圆1000 km的城市
georadiuschina : city 11030500 kmwithdist
显示从找到的地方到中心的距离的位置
georadiuschina : city 11030500 kmwithcoord :显示找到位置的纬度和经度(定位)
(georadiuschina : city 11030500 kmwithcoordwithdistcount1(筛选指定结果) ) ) ) ) ) ) ) )
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创建一组元素
pfcountmykey :计数mykey的基数数
pfmergemykey3mykey mykey2:将mykey和mykey2融合到mykey3中
3.Bitmap(位存储)
「APP应用程式」:可用于合并使用者资讯。 (一般情况下,只能使用两种状态:登录、未登录。 都是操作二进制位进行记录
只有“0”和“1”两种状态。
记录星期一到星期天的工时记录卡(数量安排为0-6 )。
星期一:1(打卡; 星期二:0(无工时记录卡) ) ) ) )。
调查有一天有没有打卡,使用getbit
可以打卡的天数: