一段经典的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 作者: 511遇见

所属分类: Php 标签: Php

PHP统计在线用户数量的更多相关文章

  1. Javaweb基础--->利用监听器统计在线用户数量和用户信息

    首页布局:index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  2. Tomcat集群下获取memcached缓存对象数量,统计在线用户数据量

    项目需要统计在线用户数量,系统部署在集群环境下,使用会话粘贴的方式解决Session问题.要想得到真实在线用户数,必须是所有节点的总和. 这里考虑使用memcached存放用户登录数据,key为use ...

  3. 使用 Redis 统计在线用户人数

    在构建应用的时候, 我们经常需要对用户的一举一动进行记录, 而其中一个比较重要的操作, 就是对在线的用户进行记录. 本文将介绍四种使用 Redis 对在线用户进行记录的方案, 这些方案虽然都可以对在线 ...

  4. 用HttpSessionListener统计在线用户或做账号在线人数管理

    使用HttpSessionListener接口可监听session的创建和失效 session是在用户第一次访问页面时创建 在session超时或调用request.getSession().inva ...

  5. ASP.NET MVC使用SignalR统计在线用户人数

    学到新东西就记录一下.也许正好有人需要~~~~~~ 由于需要记录当前在线用户,emmmm又是没做过的... 本来想用数据库的形式,但是想想这么简单的功能百度肯定有.遨游一波百度,有所收获.... 虽然 ...

  6. php 获取当前在线用户数量

    <?php //在线人数统计 $filename='online.txt';//数据文件 $cookiename='VGOTCN_OnLineCount';//cookie名称 $onlinet ...

  7. java Session统计在线用户,并且显示在线用户

    关键字: httpsession 1.http://www.jspcn.net/htmlnews/11049329478121583.html       监听器 2.session.invalida ...

  8. ASP.NET中在线用户统计

    统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率.现在,我们就介绍一个简单明了的方法 ...

  9. 在线用户管理--ESFramework 4.0 进阶(05)

    无论我们采用何种通信框架来构建我们的分布式系统,在服务端进行用户管理都是非常重要的一个环节.然而用户管理是否应该隶属于通信框架了?这个并不一定,通常来说,用户管理是与具体应用紧密相关的,应该是由应用解 ...

  10. 让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能

    你的 Nginx 已经有了 RTMP 直播功能的话,如果你还想统计某直播频道当前观看用户量的话,可以加入 with-http_xslt_module 模块.具体步骤如下:        1.查看原来的 ...

随机推荐

  1. SAP 采购订单行项目客制化字段增强

    需求: 在采购订单行项目中新增客制化字段,区分采购的项目中的物料是量产还是研发物料 开发步骤 主要使用二代增强出口:MM06E005 创建增强项目 事务码T-code:CMOD 创建项目ZEMM001 ...

  2. VUE学习-组件

    组件 组件是可复用的 Vue 实例,且带有一个名字. <div id="components-demo"> <button-counter></but ...

  3. React Tree树形结构封装工具类

    需要依赖 immutable,用于group by分组 buildTree 为入口方法,注意返回的是Immutable.List对象,使用需要调用.toJS()方法转为普通对象 其中 creatNod ...

  4. SQL数据库常用命令

    数据库操作: 创建库:create database 数据库名 删除库:drop database 数据库名 选择库:use 数据库名 Database changed 关闭安全模式:set sql_ ...

  5. Svelte

    Svelte Svelte 简介 在最新的<State of JS survey of 2020>中,它被预测为未来十年可能取代React和Vue等其他框架的新兴技术.如果你不确定自己是否 ...

  6. Hadoop2.7.3源码编译

    一.编译源码步骤演示详解 需求:官网下载的hadoop包,执行hadoop命令时,会有警告信息,为去除此警告,需要重新编译hadoop相应版本的源码,替换hadoop安装包lib目录下的native( ...

  7. Centos7忘记root密码,修改root密码及其他用户密码

    具体步骤: 1.重启系统,在开机过程中,快速按下方向键↑和↓.在引导程序页面暂停. 2.选择第一行(背景高亮即为选中),按下键盘上的e,进入编辑模式 3.将光标一直移动到 LANG=en_US.UTF ...

  8. 通过curl获取当前机器IPv6的外网地址

    curl -XPOST -vB -6 -g "https://10086.cn/web-Center/commonservice/getUserIp.do" -H "Re ...

  9. unity 扇形范围检测目标

    第一种 代码方法 传入目标点测试即可 private float ScopeDistance = 2f;//扇形距离 private float ScopeJiaodu = 120;//扇形的角度 / ...

  10. Jupyter notebook upload无法加载本地ipynb文件

    可能是本地浏览器(IE)问题,修改默认浏览器.