一个业务系统网站每天人数的访问量是多少,在线人数是多少?这种业务我们在开发中就要预留,也是在我们的设计范围内的咯!因为一个正在运营的网站,每天都会用到统计。
那在线人数是如何统计的呢,这里有几种方案,代码用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'