redis-特殊数据类型及其命令

redis除了五种基本数据类型,还有三种特殊数据类型,分别是

  1. geospatial:存储、查询地理位置信息
  2. hyperloglog
  3. bitmaps

一、geospatial

geoadd china:city 116 39 beijing 137 32 shanghai #在指定key中添加经度、纬度及其对应的位置,可以同时添加多个
geopos china:city beijng #返回指定位置的经纬度
geodist china:city beijiing shanghai km #返回两个位置的直线距离,可以指定距离单位m、km
geohash china:city beijing shanghai #以字符串的形式返回位置的经纬度,字符串越接近,说明距离越接近
georadius china:city 110 35 1000 km withdist withcoord #返回指定经纬度、指定半径内的位置,可以附带距离和经纬度
georadiusbymember china:city beijing 500 km #返回指定位置、指定半径内的位置


zrange china:city 0 -1 #返回全部位置
zrem china:city beijing #删除元素,返回1表示删除成功

geospatial底层是sorted set,所以可以使用zset的命令进行操作。比如geo没有移除命令,可以使用zrem移除位置。

二、hyperloglog

hyperloglog即使存放2^64个元素,占用空间只有12kB
主要作用:在允许误差的情况下,统计集合中的不重复元素个数。比如统计uv
大数据量有误差0.81%,小数据量精确
如果不允许误差,那么就不能使用hyperloglog,可以使用set

pfadd myKey a a b c d e f #增加元素到key中,返回1表示添加成功
pfcount myKey #返回key中的基数(即不重复的元素的个数),这里是6
pfmerge myKey3 myKey1 myKey2 #把myKey1、myKey2合并成myKey3,即myKey3是myKey1、myKey2的并集

三、bitmaps

统计、存储只有两个状态的数据,比如是否登陆、是否在线等,占用内存小

setbit key 0 1 #设置key第0位bit值1
setbit key 1 1
setbit key 2 0
setbit key 3 1

getbit key 2  #获取key第2位bit值,返回0
bitcount key #返回1的个数

以上

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值