redis官网关于数据类型的介绍: Understand Redis data types | Redis
本文简单讲解后物种数据类型的命令和应用场景。
Streams:
Stream是一种数据结构,其作用类似于仅附加日志。 Stream有助于按事件发生的顺序记录事件,然后将它们联合起来进行处理。 可以用作与阻塞队列。
Geospatial indexes:
用来存储经纬度坐标,我们存储了很多坐标之后,就可以让用户给我们一个坐标然后去查找周围的坐标点。这个功能在地图上应用广泛。
Bitmap:
Bitmaps位图:本质上还是一个集合,属于Set类型对整数的优化版本。
Bitfields:
Bitfields和C中的位域非常相似,后侧的数字描述这个成员变量占几个bit位,本质上是为我们提供了一种精准进行位操作的方法。
HyperLogLog:
应用场景只有一个,估算集合中的元素个数。使用Set去统计UV(用户访问次数)会保存用户唯一标识,如果UV数据量非常大那么就要消耗很大的内存空间。HyperLogLog可以最多使用12KB去完成统计UV的工作。HyperLogLog不会去记录元素内容,但能够记住元素的特征,从而当添加元素的时候HyperLogLog就可以知道这个元素是新增的元素,还是已经存在的元素。但是HyperLogLog会有一点误差:(看不懂这个误差指的是整体的估算个数的误差,还是每一次添加元素是判断是都已经存在的误差,还是其他意思的误差)
The Redis HyperLogLog implementation uses up to 12 KB and provides a standard error of 0.81%.
pfadd:
添加数据,返回0或1:
pfadd key element [element ...]
pfcount:
获取集合中元素个数,支持同时获取多个集合的元素个数:查询一个集合的元素个数的时间复杂度是O(1)。
pfcount key [key ...]
pfdebug:
内部命令,用于测试和开发
pfmerge:
合并两个HLL集合,返回ok.
PFMERGE destkey [sourcekey [sourcekey ...]]
pfselftest:
也是内部命令: