標籤:儲存 struct attach php ++ 日期 首碼 func online
一段經典的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 511遇見
所屬分類: Php 標籤: Php
PHP統計線上使用者數量