一段经典的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. 网站整套部署方案-负载均衡配置Nginx+宝塔+云数据库+云WAF

    这是一套部署特别方便的站点方案,包括使用nginx负载均衡,宝塔部署站点,云数据库加一套安全产品云WAF. 一.结构图 1.基本功能 负载均衡,WEB,数据库都是在一个云平台上,内网都属于一个vpc二 ...

  2. 用到的jar包作用随笔,吼吼

    名称 版本 说明 spring spring.jar(2.5) spring基础包                   公司基础包 isskill-pro0.7.1.2.jar(0.7.1.2) 包含 ...

  3. java 内存锁

    import lombok.extern.slf4j.Slf4j;import java.util.Map;import java.util.concurrent.ConcurrentHashMap; ...

  4. CryptoKit 实现 椭圆曲线ECC加密

    1.有没有一种方式让两个人的对话绝对安全呢?答案是肯定有的 那就是使用 椭圆曲线ECC加密 2.椭圆曲线ECC加密原理 假设有两个用户A和B .A随机生成一个密码对包含了公钥和私钥 同理B也随机生成一 ...

  5. RabbitMQ-01-使用Java进行简单消息发送与接收

    前言 这里使用手动管理jar与使用Maven管理jar两种方式,分别演示消息的发送和接收. 手动管理jar实现消息发送与接收 添加jar amqp-client-5.7.1.jar slf4j-api ...

  6. Sql Sugar 使用

    sql sugar orm文档地址: SqlSugar ORM 5.X 官网 .文档.教程 - SqlSugar 5x - .NET果糖网 (donet5.com) sql sugar 基本用法大全, ...

  7. JAVA JAR包注册成服务,开机启动,WINSW使用

    1,下载工具 WINSW. https://www.aliyundrive.com/s/fACj3xk8R74 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画 ...

  8. 主页面调取iframe子页面的子页面数据

    iframe = this.iframe.contentWindow; var rowsData = iframe.$("#sonList2")[0].contentWindow. ...

  9. 关于oracle中scott用户恢复到初始状态的步骤,和一些问题解决方法。

    一般恢复步骤: sqlplus 连接到sys用户sqlplus / as sysdba运行脚本进行初始恢复start ?/rdbms/admin/utlsampl.sql;恢复后,用户为锁定状态,需要 ...

  10. c--> #define 定义宏

    #define 定义宏 宏(Macro)是预处理命令的一种,它允许用一个标识符来表示一个字符串 1.有关定义宏的代码末尾不需要添加":"(分号) 2.定义宏define在计算的式子 ...