Redis应用之SET:App DAU统计,留存统计

|

App每日活跃用户数,每日留存统计,是一个很常见的需求。在Redis中,我们刚好可以通过SET来记录所有的用户,并通过SET提供的各种操作API来实现对比统计。

每日DAU统计例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 记录20210525这天的活跃用户
127.0.0.1:6379> SADD user:20210525 10010 10011
2
127.0.0.1:6379> SADD user:20210525 10010 10086 10090
2
127.0.0.1:6379> SADD user:20210525 10086 12345 999900 100000
3
# 可以看到没有重复的内容
127.0.0.1:6379> SMEMBERS user:20210525
10010
10011
10086
10090
12345
100000
999900
# 记录20210526这天的活跃用户
127.0.0.1:6379> SADD user:20210526 10010 10086
2
# 通过交集获取26号的留存
127.0.0.1:6379> SINTERSTORE result user:20210525 user:20210526
2
127.0.0.1:6379> SMEMBERS result
10010
10086
image-20211010135719105

注意:SET数据类型的并集和交集计算复杂度比较高,如果SET数据量过大,可能会导致操作阻塞,建议此类操作放到单独的从库中进行。

References