24小时统计
业务背景
最初设计的时候根据业务需求使用的统计数据是每天凌晨统计一次,
也就是最细的力度是天
24小时的统计数据,是从接口发出请求到服务端收到信息后的时间位开始时间,往前推24小时,这个时间段的数据统计信息;
在之前数据量比较小的时候,做了一层数据缓存,1s之内能返回;现在业务数据量大了之后,SQL的查询变得慢了,并且计也耗费时间,所以响应很慢,思考一番之后,有如下方案可以解决;
新的解决方案
- 由于对24小时数据的精确度不是很高,所以我们可以存放时间刻度位每小时的数据统计之后存入数据库,查询的时候只需要查询当前这个小时的+前23小时的数据
我们之间已经存放了按天为力度的数据,在加上小时的数据对业务并有太大的好处;我们考虑在API服务启动的时候,增加一个双端队列缓存数据,队列缓存的长度为24
- 逻辑处理如下,可以定时处理,5分钟触发一次
- 这样在访问数据的时候,直接访问内存的数据,做累计就可以达到我们想要的额效果
- 逻辑处理如下,可以定时处理,5分钟触发一次
总结
这种算是偷懒的形式,不过结合业务来时,这是使用内存还时间的方法,并可以较少浪费数据库存储空间。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。