ホームページ  >  記事  >  バックエンド開発  >  PHP はオンライン ユーザーをカウントします

PHP はオンライン ユーザーをカウントします

WBOY
WBOYオリジナル
2016-07-25 08:42:171051ブラウズ
  1. /**
  2. * 作成者: PhpStorm.
  3. * ユーザー: jifei
  4. * 日付: 15/11/24
  5. * 時刻: 20:58
  6. *
  7. * 1 分あたり数百万のユーザー、オンライン ユーザーの総数のリアルタイム統計最後の15分
  8. */
  9. class OnlineUser
  10. {
  11. public $prefix_key = "online";//key prefix
  12. public function __construct()
  13. {
  14. $this->redis = new Redis();
  15. }
  16. /**
  17. * 新しいオンライン ユーザーをコレクションに追加します
  18. *
  19. * @param $uid
  20. */
  21. public function addUser($uid)
  22. {
  23. $this->redis->sAdd($this->prefix_key . date('hi '), $uid);
  24. }
  25. /**
  26. * オンラインユーザーの数を取得します
  27. *
  28. * @param $start_min 統計の開始分、形式
  29. * @param $end_min 統計の終了分
  30. *
  31. * @returnmixed
  32. */
  33. public function userNum($start_min, $end_min)
  34. {
  35. //最初のパラメータ、共用体のキー名
  36. $params[] = $this->prefix_key . $start_min . '_' . $end_min;
  37. // 時間間隔内のすべての分をパラメータ
  38. に入力します ($min = $start_min; $min < $end_min; $min++) {
  39. $params[] = $this->prefix_key . $min;
  40. }
  41. //すべての分ユーザーの和集合を見つけて保存するため、直接計算して返すよりもパフォーマンスが大幅に高速になります。データ送信用
  42. $num = call_user_func_array([$this->redis, "sUnionStore"], $params);
  43. //一時ユニオンを削除
  44. $this->redis->delete($params[0] );
  45. return $num;
  46. }
  47. }
コードをコピー

PHP


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。