一,Hyperloglog(基数)
1.什么是Hyperloglog(基数)
一个集合中的不重复的元素,
eg:A{1,3,5,7,8,7} B{1,3,5,7,8}
基数(不重复的元素)= 5,可以接受误差
2.应用场景
统计页面访问量:一般一个人或多次访问一个网页,当统计时不能将一个人的多次访问统计成多个访问量,所以Hyperloglog很好的满足了这个要求
传统的利用实体去setid方式,但着用会持久化大量无用的数据,用redis会很好的解决这个问题,
优点:内存时固定的 12k
注意:如果允许数据容错的话用Hyperloglog,是不错的选择
如果不允许容错,那么只能用set或者自定义的数据类型
二,Bitmap位存储
拓展:bitmaps可以实现布隆过滤器
使用场景:当一个对应只有两个或几个属性时,推荐使用
例子:统计用户信息,活跃,不活跃,登录,未登录,打卡
Bitmaps位图,数据结构,都是操作二进制位来进行记录的,只有0 1两个状态
比如利用bitmaps实现一个人365天的打卡情况
365天 = 365bit 1字节=8bit 46个字节左右
用bitmapps实现,~指令【setbit {key} {offset} {vlaue}】
缺点:1.只有两个状态,在实际应用场景中,仅适用于状态或属性少的业务,
2.约束大,不方便后期扩展