1. 概述
Redis6中除了有5中基本的数据类型外,还有另外3中新数据类型,包括Bitmaps、HyperLogLog和Geospatial。本文将详细介绍这3中数据类型。
2. Bitmaps
2.1. 简介
Redis提供的Bitmaps可以实现对位的操作,实际上就是字符串(key-value),只是单独提供了一套命令,可以把其看作是一个以位为单位的数组,数组的每个单元只能存储0和1,数组的下标在Bitmaps中称作偏移量
2.2. 命令
setbit:设置某个偏移量的值(0或1)
setbit <key> <offset> <value>
getbit:获取某个偏移量的值
getbit <key> <offset>
bitcount:统计字符串被设置为1的比特数量,start和end为字节
bitcount <key>
bitcount <key> <start> <end>
bitop:获取交集、并集、非、异或,并将结果保存在另一个key中
bitop and(or/not/xor) <destkey> <key...>
3. HyperLogLog
3.1. 简介
HyperLogLog用于做基数统计,其优点是输入元素的数量或者体积非常大时,计算基数所需的空间总是固定的,并且很小
3.2 命令
pfadd:添加元素
pfadd <key> <element...>
pfcount:统计近似基数个个数
pfcount <key>
pfmerge:将一个或多个HLL合并后的结果保存在另一个HLL中
pfmerge <destkey> <sourcekey>
4. Geospatial
4.1. 简介
用于存储二维坐标数据,如地图经纬度
4.2. 命令
geoadd:添加位置信息
geoadd <key> <longitude> <latitude> <member>
geopos:获取坐标值
geopos <key> <member>
geodist:获取两个位置的直线距离
geodist <key> <member1> <member2> [m|km|ft|mi]
georadius:给定经纬度为中心,找出某一半径内的值
georadius <key> <longitude> <latitude> radius m|km|ft|mi
关于SpringBoot与三种新数据类型的整合,请参阅另一篇SpringBoot2.3整合Redis6实现基本操作