- /**
- * 作成者: PhpStorm.
- * ユーザー: jifei
- * 日付: 15/11/24
- * 時刻: 20:58
- *
- * 1 分あたり数百万のユーザー、オンライン ユーザーの総数のリアルタイム統計最後の15分
- */
- class OnlineUser
- {
- public $prefix_key = "online";//key prefix
- 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 統計の開始分、形式
- * @param $end_min 統計の終了分
- *
- * @returnmixed
- */
- public function userNum($start_min, $end_min)
- {
- //最初のパラメータ、共用体のキー名
- $params[] = $this->prefix_key . $start_min . '_' . $end_min;
- // 時間間隔内のすべての分をパラメータ
- に入力します ($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;
- }
- }
コードをコピー
|