zoukankan      html  css  js  c++  java
  • PHP统计在线用户数量

    511遇见

    一段经典的php统计在线用户数量的代码,一起学习分享。

    1. <?php
    2. /**
    3.  * Created by PhpStorm.
    4.  * User: jifei
    5.  * Date: 15/11/24
    6.  * Time: 20:58
    7.  *
    8.  * 每分钟百万用户,实时统计最近15分钟在线用户总数
    9.  */
    10. class OnlineUser
    11. {
    12.     public $prefix_key = "online";//key前缀
    13.     public function __construct()
    14.     {
    15.         $this->redis = new Redis();
    16.     }
    17.     /**
    18.      * 往集合中添加新的在线用户
    19.      *
    20.      * @param $uid
    21.      */
    22.     public function addUser($uid)
    23.     {
    24.         $this->redis->sAdd($this->prefix_key . date('hi'), $uid);
    25.     }
    26.     /**
    27.      * 获取在线用户数
    28.      *
    29.      * @param $start_min  统计开始分钟 hi格式
    30.      * @param $end_min    统计结束的分钟
    31.      *
    32.      * @return mixed
    33.      */
    34.     public function userNum($start_min, $end_min)
    35.     {
    36.         //第一个参数,并集的key名称
    37.         $params[] = $this->prefix_key . $start_min . '_' . $end_min;
    38.         //遍历时间区间内所有的分钟,并放入到参数中
    39.         for ($min = $start_min; $min < $end_min; $min++) {
    40.             $params[] = $this->prefix_key . $min;
    41.         }
    42.         //求所有分钟的用户的并集并保存,性能比直接计算返回快很多,省去了数据传输
    43.         $num = call_user_func_array([$this->redis, "sUnionStore"], $params);
    44.         //删除临时并集
    45.         $this->redis->delete($params[0]);
    46.         return $num;
    47.     }
    48. }
     
     
     

    发布日期: 2016-07-30

    所属分类: Php 标签: 

  • 相关阅读:
    fiddler配置及使用教程
    获取字符串中出现次数最少的字符
    引用数据类型的深拷贝
    jquery一些方法
    常用字体
    图片模拟
    返回上一页并刷新
    移动端网页调试神器
    input一些限制
    使用transform后z-index失效的解决方法
  • 原文地址:https://www.cnblogs.com/xiager/p/6855495.html
Copyright © 2011-2022 走看看