redis数据统计

本文介绍了Redis集合类型如何用于数据统计,包括聚合统计(交集、差集、并集)、排序统计(如最新评论列表)、二值状态统计(如签到状态)和基数统计(如UV量)。通过具体示例,详细解析了如何利用Redis进行这些统计操作,强调了在进行复杂统计时注意避免主库阻塞和选择合适的数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis的集合类型的特点是一个键对应一系列值,非常适合用来存取统计的数据,比如:
每天的新增用户数和第二天的留存用户数;
统计评论列表的最新评论;
一个月内连续打卡的用户数;
UV量;
先了解一下常用的集合统计模式:
聚合统计,排序统计,二值状态统计,基数统计
聚合统计
聚合统计是指统计多个集合元素的聚合结果。包括:交集统计,差集统计,并集统计。
Set类型非常适合用来做聚合统计。

SINTER key [key ...] #返回指定所有的集合的成员的交集.时间复杂度O(N*M)
SUNION key [key ...] #返回给定的多个集合的并集中的所有成员.时间复杂度:O(N
SDIFF key [key ...] #返回一个集合与给定集合的差集的元素.O(N)

比如统计每天的新增用户数和第二天的留存用户数。
假设在2022年10月1号上线,10月1号前是没有数据的,累计用户set是空的。10月1号登陆的用户记录在key为user🆔20221001的集合set中,计算累计用户set和user🆔20221001的并集结果,存在user:id的集合中(user:id集合是累计用户集合),到了10月2号,登录的用户记录在user🆔20221002的集合中,执行SDIFFSTORE计算user:id与user🆔20221002的差集,存在user:new中,user:new就是10月2号的新增用户。对user🆔20221001和user🆔20221002进行交集计算就是留存用户数。
由于计算复杂度较高,需要选择一个从库,或者放在客户端去进行聚合统计,防止主库阻塞。
排序统计
需要对集合类型进行排序。
LIST和SOERTED SET是有序集合。
LIST是按照原始进入LIST的顺序进行排序
SORTED是按照元素的权重进行排序,我们可以自己来决定每个元素的权重值。
比如最新评论列表的场景。
当使用LIST存储时,每当有一个新评论,可以使用LPUSH插入到LIST的对头。

LPUSH  product "A&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值