PHP統計在線用戶數量
阿新 • • 發佈:2017-05-15
prefix ons image pos fun 學習 ber sta -o
一段經典的php統計在線用戶數量的代碼,一起學習分享。
-
<?php
-
/**
-
* Created by PhpStorm.
-
* User: jifei
-
* Date: 15/11/24
-
* Time: 20:58
-
*
-
* 每分鐘百萬用戶,實時統計最近15分鐘在線用戶總數
-
*/
-
class OnlineUser
-
{
-
public $prefix_key = "online";//key前綴
-
public function __construct()
-
{
-
$this->redis = new Redis();
-
}
-
/**
-
* 往集合中添加新的在線用戶
-
*
-
* @param $uid
-
*/
-
public function addUser($uid)
-
{
-
$this->redis->sAdd($this->prefix_key . date(‘hi‘), $uid);
-
}
-
/**
-
* 獲取在線用戶數
-
*
-
* @param $start_min 統計開始分鐘 hi格式
-
* @param $end_min 統計結束的分鐘
-
*
-
* @return mixed
-
*/
-
public function userNum($start_min, $end_min)
-
{
-
//第一個參數,並集的key名稱
-
$params[] = $this->prefix_key . $start_min . ‘_‘ . $end_min;
-
//遍歷時間區間內所有的分鐘,並放入到參數中
-
for ($min = $start_min; $min < $end_min; $min++) {
-
$params[] = $this->prefix_key . $min;
-
}
-
//求所有分鐘的用戶的並集並保存,性能比直接計算返回快很多,省去了數據傳輸
-
$num = call_user_func_array([$this->redis, "sUnionStore"], $params);
-
//刪除臨時並集
-
$this->redis->delete($params[0]);
-
return $num;
-
}
-
}
發布日期: 2016-07-30
所屬分類: Php
PHP統計在線用戶數量