Redis新数据类型(BitMap、Hyperloglog、Geospatial)

目录

1 BitMaps

1.1 简介

1.2 常用命令

2 HyperLogLog

2.1 简介

2.2 常用命令

3 Geospatial

3.1 简介

3.2 常用命令


1 BitMaps

1.1 简介

Redis提供BitMaps这个“数据类型”,可以实现对位的操作。

  1. Bitmaps本身不是一种数据类型,实际上他就是字符串,但它可以对字符串的位进行操作

  2. Bitmaps单独提供了一套命令,所以使用Bitmaps和使用String不太一样。可以把Bitmaps想象成一个以位为单位的数组,数组的每个存储单位只能存储0或者1。数组的下标在Bitmaps里面叫做偏移量(偏移量从0开始)

1.2 常用命令

setbit <key> <offset> <value> :设置BItmaps中某个偏移量的值

getbit <key> <offset> :获取Bitmaps中某个偏移量的值

 

bitcount <key> :计算Bitmaps类型的key对应的偏移量中值为1的个数

 

bitcount <key> [start] [end] :计算Bitmaps类型的key对应的偏移量从start~end中值为1的个数

bitop and/or/not/xor <new > <key1> <key2>: 就是将key1和key2的运算结果集放到新的bitmap new中。运算的集合就是两个bitmap中的偏移量和偏移值

2 HyperLogLog

2.1 简介

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。

HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

什么是基数?

比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。

也就是说相当于Java中的set集合,是不可重复的,或者说会去重。

2.2 常用命令

pfadd <key> <element> [element...] :添加指定元素到HyperLogLog中

pfcount <key> [key ...] :计算key中元素个数的近似基数,可以计算多个key,会将多个key中的元素个数累加

pfmerge <destkey> <source> [source..] :将后面的hyperloglog全部复制到最前面的一个里面。操作后,后面的其他的hyperloglog不会有影响,不会消失。

3 Geospatial

3.1 简介

Redis 3.2 中增加了对GEO类型的支持。GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度。redis基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作

3.2 常用命令

geoadd <key> < longitude> <latitude> <member> [longitude latitude member...] 添加地理位置(经度,纬度,名称)

  • 两极无法直接添加,一般会下载城市数据,直接通过 Java 程序一次性导入。

  • 有效的经度从 -180 度到 180 度。有效的纬度从 -85.05112878 度到 85.05112878 度。

  • 当坐标位置超出指定范围时,该命令将会返回一个错误。

  • 已经添加的数据,是无法再次往里面添加的。

geopos <key> <member> [member...] 获得指定地区的坐标值

geodist <key> <member1> <member2> [m|km|ft|mi ] 获取两个位置之间的直线距离

  • m 表示单位为米[默认值]。

  • km 表示单位为千米。

  • mi 表示单位为英里。

  • ft 表示单位为英尺。

  • 如果用户没有显式地指定单位参数, 那么 GEODIST 默认使用米作为单位

georadius <key>< longitude><latitude>radius m|km|ft|mi 以给定的经纬度为中心,找出某一半径内的元素

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值