在移动应用的业务场景中,我们需要保存这样的信息:一个key关联了一个数据集合,同时还要对集合中的数据进行统计排序。
常见的场景如下:
给一个userId,判断用户登陆状态;两亿用户最近7天的签到情况,统计7天内连续签到的用户总数;统计每天的新增与第二天的留存用户数;统计网站的对访客(UniqueVisitor,UV)量最新评论列表根据播放量音乐榜单通常情况下,我们面临的用户数量以及访问量都是巨大的,比如百万、千万级别的用户数量,或者千万级别、甚至亿级别的访问信息。
所以,我们必须要选择能够非常高效地统计大量数据(例如亿级)的集合类型。
如何选择合适的数据集合,我们首先要了解常用的统计模式,并运用合理的数据来解决实际问题。
四种统计类型:
二值状态统计;聚合统计;排序统计;基数统计。本文将用到String、Set、Zset、List、hash以外的拓展数据类型Bitmap、HyperLogLog来实现。
关于二值统计请看历史文章:
Redis实战篇:巧用Bitmap实现海量数据统计
今天我们来看下剩下的三种统计类型。
文章涉及到的指令可以通过在线Redis客户端运行调试,