需求:
统计当前在线人数(当前访问网站的用户)
思路:
第一步,把访客的信息存入到数据库,每次访问或者刷新页面的时候,都更新该访客在数据库中的记录,也就是更新该访客的最后活动时间。
第二步,删除很长时间 “无动作” 的访客记录,保证数据表里面的数据最新。
问题:
思路中的第一步没有问题,问题在于第二步。假设我的应用访客并发数为100万,那么我的数据访客表中的数据至少有100万条,如果每个用户每次访问都要遍历整张表,找出“无动作”的用户,然后把他的记录删掉,所耗资源太大。
解决方法:
模仿session的回收机制。php处理session的机制是,设置一个概

本文探讨了如何实现Web在线人数统计,通过将访客信息存储到数据库并更新最后活动时间。针对高并发场景下,避免每次访问都遍历整个数据库表进行清理,借鉴PHP session的垃圾回收机制,设置概率触发删除长时间未活动的用户记录,以减少资源消耗。文章提供了具体的数据库设计和PHP代码示例。
最低0.47元/天 解锁文章
1196

被折叠的 条评论
为什么被折叠?



