Redis三种特殊数据类型
官方文档只给出了如上六个命令
1.2.1 geoadd,添加地理位置的经度纬度

以上是存入相关城市纬度经度信息,注意这里前面是纬度后面是经度,不要弄反了,南极和北极无法直接添加
1.2.2 geopos,获得地理位置的经度纬度

1.2.3 geodist,返回两个定位之间的距离
如果两个位置之间的其中一个不存在, 那么命令返回空值。
指定单位的参数 unit 必须是以下单位的其中一个:
-
m 表示单位为米。
-
km 表示单位为千米。
-
mi 表示单位为英里。
-
ft 表示单位为英尺。

我附近的人?(获得附近所有人的地址,定位!)通过半径来查询
1.2.4 georadis 以给定的经纬度为中心,找出某一半径内的元素

1.2.5 georadiusbymember 基于一个元素,来查询这个元素附近的东西

只是把上面的经纬度,,换成了具体的元素
1.2.6 geohash (该命令将返回11个字符的Geohash字符串,两个字符串越接近那么距离越近)

deo 底层实现原理 就是zset,有序集合。因此可以用zset命令来操作它。比如说我们要删除一个定位

zset里所有的命令,它都可以对它来进行操作
2.
Redis2.8.9版本就更新了Hyperloglog数据结构
Redis Hyperloglog 基数统计的算法
2.2到底在哪里应用呢?
在计算网页的UV(页面访问量)的时候,需要记录它访问量的增长,同时还是删选掉那些重复的用户,也就是说一个用户访问了三遍这个网站,
但是它的访问次数还是会被记录为1,也就是说去计算基数,那么传统的方法是用set来做,但是这种方法是存储大量的用户ID,吃力不讨好。
hyperloglog的优点:
占用的内存是固定的,2^64不同元素,只需要废12kb的内存,如果要从内存角度来比较的话,Hyperloglog是首选
hyperloglog的缺点:
0.81%的错误率
2.3测试数据使用

如果不允许容错是不可以使用hyperloglog
3.
那么判断打卡的天数,只用判断那些是1就可以了


设置范围的



浙公网安备 33010602011771号