Redis的特殊类型

geospatial地理位置类型

前言:Redis的Geo,在Redis3.2版本就已经推出了,一共只有六个命令,可以使用它来进行定位、测试距离等功能。
在这里插入图片描述
地区的经纬度可以在百度上查找

https://jingweidu.bmcx.com/

geoadd

参数:geoadd  key   维度  经度

添加地理位置
#规则:两极是无法直接添加的,我们一般会下载城市数据,直接通过java程序一次性导入!

#参数:geoadd  key   维度  经度
geoadd china:city   116.2  40.2 beijing
geoadd china:city  121.47 31.23 shanghai
geoadd china:city  106.50 29.53 chongqi
geoadd china:city  114.05 22.52 shenzhen
(可以通过java程序一次性输入)
geoadd china:city  108.96 34.26 xian

注意:
在这里插入图片描述

geopos

geopos
GEOPOS  china:city beijing  #获取指定城市的经度和维度
GEOPOS  china:city beijing chongqi  #返回两个城市

geodist

geodist  #查询两者之间的距离,肯定会有误差的
GEODIST china:city beijing shanghai 
GEODIST china:city beijing shanghai  km  以km作为单位

在这里插入图片描述

georadius

georadius以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。
GEORADIUS china:city 110 30 1000 km  以110和30为经纬度中心,查询1000km为半径内的所有城市

在这里插入图片描述

GEORADIUS china:city 110 30 1000 km withdist/withcoord  count 1  #以110、30为经度和维度作为中心,1000km为半径内的所有key的值都显示出来,并附带其参数,count 后面带的数字可以指定要返回的数量

GEORADIUSBYMEMBER

这个命令和 GEORADIUS 命令一样, 都可以找出位于指定范围内的元素, 但是 GEORADIUSBYMEMBER 的中心点是由给定的位置元素决定的, 而不是像 GEORADIUS 那样, 使用输入的经度和纬度来决定中心点
指定成员的位置被用作查询的中心。

GEORADIUSBYMEMBER china:city beijing  1000km
1)beijing
2) xian

GEOHASH

这个用处不大,了解即可
其实就是把二维的经纬度转换成字符串

geohash china:city beijing chongqi   字符串越长越精确

小结

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

hypeloglog基数类型

前言:
Redis2.8.9版本就更新了Hpyeloglog数据结构,基于算法

那么什么是基数?

A{1,3,5,7,8,9,7} B{1,3,5,7,9}

基数:不重复的元素 = 5,可以接受误差

为什么要用hypeloglog?

Redis Hypeloglog基数统计的算法!

网页的UV( 一个人访问一个网站多次,但是还是算作一个人)

传统的方式,set保存用户的id,然后就可以统计set中的元素数量作为标准判断!

这个方式如果保存大量的用户id,就会比较麻烦,消耗大量的内存取保存id,我们的目的是为了计数,而不是保存用户id;

优点:内存占用十分小,如果要从内存角度来比较的话,因此Hpyeloglog首选

命令

PFadd mykey A B C D E F G H  #创建第一组元素
PFCOUNT mykey  #统计第一组元素的基数数量
PFadd  mykey2 C D T  H R R#创建第二组元素
PFMERGE     mykey3   mykey  mykey2 #合并两组mykey和mykey2 => mykey3 并集

注意

Hpyeloglog是有可能会出错的,但是它的优点是内存十分的小,如果不允许出错,那就用自己的方式来存储

Bitmaps类型

前言:Bitmaps是redis的位存储
为什么要用呢?下面介绍一个案例

统计疫情感染人数:0 1 0 0 0 ,感染用1,其他用0、
b站活跃和不活跃,登录和未登录,打卡
两个状态的都可以使用Bitmaps

Bitmaps位图,数据结构!都是操作二进制位来记录,就只有0和1两个状态!
365天= 365bit 1个字节=8bit ,46个字节就可以存储365天的状态了

在这里插入图片描述
查看某一天是否有打卡!
在这里插入图片描述
统计操作,统计这周打卡的天数,就可以看到是否有全勤:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我菜菜就好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值