redis(八:redis特性和扩展数据类型)

1 慢查询:

慢查询是一个先进先出的队列。固定长度的,但执行命令超过特定配置则会进入该队列。保存在内存中。   slowlog-max-len ,默认值128。

slowlog-log-slower-than: 慢查询阈值,单位是微秒。等于0 则所有命令都进入慢查询。默认值10000微秒。

 

2 pipeline:

一次网络一次命令   pipelibe:一次网络N加命令。

将一次请求一次命令,封装成一次请求,若干条命令,减少了网络IO的开销。

redis命令时间都是微秒级别的,所以主要控制的还是网络IO的时间。

pipeline每次的条数也要控制,提高批量的效率,但是要控制。

 

3 bitmap:  位图

bitmap底层使用string作为数据结构的,一种统计二值状态的数据结构。String类型会保存为二进制的字节数组。redis把字节数组的每个bit保存起来,可以看成是一个bit数组。

setbit  key offset value    对bit字节数组的某个下表进行写值,bitmap的偏移量是从0开始的,当对一个bit为进行写时,该值变成1。bitcount可以实现统计1的个数。使用场景有 考勤卡。

bitmap只统计用户 的二值状态。记录海量数据时很很好的节省空间。

setbit a 100 1  那1到100之间默认填充0   getbit a 100   返回1

 

4 hyperloglog

本质还是字符串。极小的空间来完成数据统计。是一种用来统计基数的数据集合,当数据集合非常大时,他计算数据的空间还是固定的,非常小。每个hyperloglog只需要消耗12KB,但是可以消耗2的64次的数据。相比较数据量越大越消耗内存的set hash,hyperloglog很节省空间。

pfadd   key  element 添加元素

pfcount  key    计算独立总数

 

5 GEO

主要用来计算地理位置信息。

geoadd 增加地理位置信息。

一辆车对应一组经纬度,并且随着车的移动响应的经纬度也发生变化。这种数据模式就是一个key 就是车,value就是一组经纬度。hash虽然很符合key value形式的数值,但是要进行范围查询,hash不适合范围查询,所以不合适。

sorted set也支持key value的数据记录模式。key是sorted set的元素,value是权重分数。sorted set可以根据元素的权重排序,支持范围查询。实际上GEO的底层数据结构就是sorted set。

 

redis(八:redis特性和扩展数据类型)

上一篇:16Redis - 存储sortedset


下一篇:关于python的sorted函数