Redis--BitMap与HyperLogLog

set hello big

big字符串在计算机中存储为

0110 0010 0110 1001 0110 0111

redis是可以直接获取每个位,如下
Redis--BitMap与HyperLogLog_第1张图片
得到的依次如下:

0110 0010 01

发现和推算的一样。
这样,定义一个key,通过设置指定偏移位的值,来存储数据,最经典的案例为登录统计。
如果设置一个很大的偏移量,那么会将前面都补0。

HyperLogLog和SET差不多。存储唯一元素,但是hyperLogLog占用的空间少,同时也会存在0.81%的误差。
在这里插入图片描述
如图中,hyper中存储了1000000个数据,通过pfcount获取基数时发现不是得到的1000000,
hyperloglog无法取出添加进去的数据。在set场景中存储太多数据,并且对准确率要求不是那么高的可以
尝试用hyperloglog。

应用场景

  • 统计词条搜索次数

你可能感兴趣的:(Redis/Memcache)