一个业务系统网站每天人数的访问量是多少,在线人数是多少? 这种业务我们在开发中就要预留,也是在我们的设计范围内的咯!因为一个正在运营的网站,每天都会用到统计。
那在线人数是如何统计的呢,这里有几种方案,代码用laravel框架。可以作为开发中参考。
1 用表统计方式
用数据表统计在线人数,这种方式只能用在并发量不大的情况下。
首先我们先新建表:user_login
user_login表
模拟用户登录,不存在用户就存入表,存在的则更新登录信息
// 客户端唯一的识别码$client_id = session()->getId(); //用户是否已存在$user = DB::table('user_login') ->where('token', $client_id) ->first(); //不存在则插入数据if (empty($user)) { $data = [ 'token' => $client_id, 'username' => 'user_' . $client_id, // 模拟用户 'uid' => mt_rand(10000000, 99999999), //模拟用户id 'create_time' => date('Y-m-d H:i:s'), 'update_time' => date('Y-m-d H:i:s') ]; DB::table('user_login')->insert($data);} else { // 存在则更新用户登录信息 DB::table('user_login') ->where('token', $client_id) ->update([ 'update_time' => date('Y-m-d H:i:s') ]);}这里还需要定期清理无任何操作的用户,假如用户一个小时内无任何操作,我们可以记为无效用户
代码如下:
// 客户端唯一的识别码$client_id = session()->getId(); //用户是否已存在$user = DB::table('user_login') ->where('token', $client_id) ->first(); //不存在则插入数据if (empty($user)) { $data = [ 'token' => $client_id, 'username' =