<返回更多

一种千万级用户实时统计用户数的简单实现

2022-07-24    无相程序猿
加入收藏

一种千万级用户实时统计用户数的简单实现

场景:微信小程序注册用户已经接近千万,而且分为实名用户和非实名用户,openId为小程序的用户id,一个实名用户可以有多个微信,所以可以多次注册,但是实名信息为同一个人。

需求:实时显示用户增长量,实名用户量,实名去重用户数,最近七日的用户变化曲线等。

实现:spring aop + redis atomlong + crontab shell脚本

思路:

1、每天凌晨3点执行一次定时任务,从msyql从库读取用户数据,做以上处理,然后获得统计数据作为基准值,写入redis。

2、aop对用户表的update、insert操做进行拦截处理,由于业务场景一般对用户都是逻辑删除,所以不需要去切delete操作。

3、根据update中的实名参数信息判断该次update是不是实名数据更新,通过实时根据身份证去查之前该用户是否已经有其他微信号进行过实名(这里有一次数据库的交互,对身份证号要建索引)。

insert操作肯定是用户的增长,这个很好理解。

4、redis中根据业务key+日期的方式对一周内数据进行缓存,用于页面展示一周用户增长曲线。

5、具体切面的核心代码如下:

一种千万级用户实时统计用户数的简单实现

 


一种千万级用户实时统计用户数的简单实现

 


一种千万级用户实时统计用户数的简单实现

 


一种千万级用户实时统计用户数的简单实现

 


一种千万级用户实时统计用户数的简单实现

 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>