Redis三种特殊类型

Geospatial(地理位置)

朋友的定位、附近的人、打车距离计算?

#geoadd地理位置数据加入
127.0.0.1:6379> geoadd china:city 116.40 39.90 beijing
(integer) 1
127.0.0.1:6379> geoadd china:city 104.06 30.65 chengdu
(integer) 1
127.0.0.1:6379> geoadd china:city 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 114.08 22.54 shenzhen
(integer) 1
#geopos获取城市经度纬度
127.0.0.1:6379> geopos china:city beijing
1) 1) "116.39999896287918091"
   2) "39.90000009167092543"
127.0.0.1:6379> geopos china:city chengdu
1) 1) "104.05999749898910522"
   2) "30.6499990746355806"
127.0.0.1:6379> geopos china:city chengdu shanghai
1) 1) "104.05999749898910522"
   2) "30.6499990746355806"
2) 1) "121.47000163793563843"
   2) "31.22999903975783553"
#geodist 返回两个地方之间的距离
127.0.0.1:6379> geodist china:city beijing chengdu
"1518430.1833"
127.0.0.1:6379> geodist china:city beijing chengdu km //指定距离单位
"1518.4302"
#georadius以给定的经纬度为中心,找出某一半径内的元素
127.0.0.1:6379> georadius china:city 110 30 1000 km
1) "chengdu"
2) "shenzhen"
127.0.0.1:6379> georadius china:city 110 30 1000 km withdist withcoord count 1
1) 1) "chengdu"
   2) "574.7802"
   3) 1) "104.05999749898910522"
      2) "30.6499990746355806"
#georadiusbymember 以某个城市为中心,查找指定范围内的城市
127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 1000 km
1) "beijing"
127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 2000 km
1) "chengdu"
2) "shenzhen"
3) "shanghai"
4) "beijing"
#geohash返回一个或多个元素的geohash表示
127.0.0.1:6379> geohash china:city beijing
1) "wx4fbxxfke0"
127.0.0.1:6379> geohash china:city chengdu
1) "wm3yrgwjjt0"
127.0.0.1:6379> geohash china:city shanghai
1) "wtw3sj5zbj0"
#geo底层是使用zset来实现的,我们可以使用zset命令来操作geo
127.0.0.1:6379> zrange china:city 0 -1 //查看全城市
1) "chengdu"
2) "shenzhen"
3) "shanghai"
4) "beijing"
127.0.0.1:6379> ZREM china:city beijing //移除某个城市
(integer) 1
127.0.0.1:6379> zrange china:city 0 -1
1) "chengdu"
2) "shenzhen"
3) "shanghai"

Hypeloglog (基数统计)

127.0.0.1:6379> PFADD mykey a b c d e f g h i //创建第一组元素
(integer) 1
127.0.0.1:6379> PFCOUNT mykey //统计不重复元素个数
(integer) 9
127.0.0.1:6379> PFADD mykey1 g h i m n d f a
(integer) 1
127.0.0.1:6379> PFMERGE mykey3 mykey mykey1 //合并前两组元素到mykey3中
OK
127.0.0.1:6379> PFCOUNT mykey3
(integer) 11

Bitmaps(位图)

#使用bitmaps 来记录周一到周日的打卡信息
127.0.0.1:6379> setbit sign 0 0 //第一个数字表示周几,第二个数字表示是否打卡(0 未打卡 1 打卡)
(integer) 0
127.0.0.1:6379> setbit sign 1 0
(integer) 0
127.0.0.1:6379> setbit sign 2 0
(integer) 0
127.0.0.1:6379> setbit sign 3 0
(integer) 0
127.0.0.1:6379> setbit sign 4 0
(integer) 0
127.0.0.1:6379> setbit sign 5 0
(integer) 0
127.0.0.1:6379> setbit sign 6 0
(integer) 0
#查看某一天是否打卡
127.0.0.1:6379> getbit sign 4
(integer) 0
#统计这周打卡技术
127.0.0.1:6379> setbit sign 3 1
(integer) 0
127.0.0.1:6379> setbit sign 6 1
(integer) 0
127.0.0.1:6379> BITCOUNT sign
(integer) 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值