PHP统计在线用户数量
一段经典的php统计在线用户数量的代码,一起学习分享。
<?php
/**
* Created by PhpStorm.
* User: jifei
* Date: 15/11/24
* Time: 20:58
*
* 每分钟百万用户,实时统计最近15分钟在线用户总数
*/
class OnlineUser
{public $prefix_key = "online";//key前缀
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 统计开始分钟 hi格式
* @param $end_min 统计结束的分钟
*
* @return mixed
*/
public function userNum($start_min, $end_min)
{//第一个参数,并集的key名称
$params[] = $this->prefix_key . $start_min . '_' . $end_min;
//遍历时间区间内所有的分钟,并放入到参数中
for ($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;
}
}
发布日期: 2016-07-30 作者: 511遇见
PHP统计在线用户数量的更多相关文章
- Javaweb基础--->利用监听器统计在线用户数量和用户信息
首页布局:index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- Tomcat集群下获取memcached缓存对象数量,统计在线用户数据量
项目需要统计在线用户数量,系统部署在集群环境下,使用会话粘贴的方式解决Session问题.要想得到真实在线用户数,必须是所有节点的总和. 这里考虑使用memcached存放用户登录数据,key为use ...
- 使用 Redis 统计在线用户人数
在构建应用的时候, 我们经常需要对用户的一举一动进行记录, 而其中一个比较重要的操作, 就是对在线的用户进行记录. 本文将介绍四种使用 Redis 对在线用户进行记录的方案, 这些方案虽然都可以对在线 ...
- 用HttpSessionListener统计在线用户或做账号在线人数管理
使用HttpSessionListener接口可监听session的创建和失效 session是在用户第一次访问页面时创建 在session超时或调用request.getSession().inva ...
- ASP.NET MVC使用SignalR统计在线用户人数
学到新东西就记录一下.也许正好有人需要~~~~~~ 由于需要记录当前在线用户,emmmm又是没做过的... 本来想用数据库的形式,但是想想这么简单的功能百度肯定有.遨游一波百度,有所收获.... 虽然 ...
- php 获取当前在线用户数量
<?php //在线人数统计 $filename='online.txt';//数据文件 $cookiename='VGOTCN_OnLineCount';//cookie名称 $onlinet ...
- java Session统计在线用户,并且显示在线用户
关键字: httpsession 1.http://www.jspcn.net/htmlnews/11049329478121583.html 监听器 2.session.invalida ...
- ASP.NET中在线用户统计
统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率.现在,我们就介绍一个简单明了的方法 ...
- 在线用户管理--ESFramework 4.0 进阶(05)
无论我们采用何种通信框架来构建我们的分布式系统,在服务端进行用户管理都是非常重要的一个环节.然而用户管理是否应该隶属于通信框架了?这个并不一定,通常来说,用户管理是与具体应用紧密相关的,应该是由应用解 ...
- 让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能
你的 Nginx 已经有了 RTMP 直播功能的话,如果你还想统计某直播频道当前观看用户量的话,可以加入 with-http_xslt_module 模块.具体步骤如下: 1.查看原来的 ...
随机推荐
- VUE学习-监听事件
监听事件 事件处理方法可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码. <div id="app"> <button v ...
- 安卓调试打包错误Error executing aapt: Return code -1073741819 Error while running zipalign
之前开发完的安卓app项目,再次打开,突然抽风报错. 1.调试运行报错:Error executing aapt: Return code -1073741819 2.打包失败报错: Error wh ...
- 挂上burpsuite代理之后显示505 HTTP Version Not Supported 解决方法
505 HTTP Version Not Supported 什么意思呢? HTTP505状态码代表的意思是 服务器不支持的HTTP版本,即 HTTP 505 HTTP Version Not Su ...
- HttpClient线程池&重试机制
HttpClientUtils package com.example.http_thread.util; import org.apache.http.HttpEntityEnclosingRequ ...
- Java并发编程 —— synchronized关键字
一.是什么?(作用) synchronized关键字解决了多个线程之间访问资源的同步性问题,保证了被其修饰的方法或是代码块在任意时刻只能有一个线程执行. 而在早期的Java版本中,synchroniz ...
- python关于函数超时异常处理
import time import func_timeout from func_timeout import func_set_timeout def time_sleep(): time.sle ...
- Pytorch加载txt格式的数据集文件(以PTB数据集为例)
前言 这篇博客以PTB数据集为例,详细讲解了如何将txt格式的数据集文件,转换为pytorch框架可以直接处理的tensor变量,并附上相应代码 @ 目录 前言 1. PTB 数据集 2. 构建词汇表 ...
- uni-app学习笔记之----不同平台,独立设置
(不断补充中...) 1.导航栏 2.条件编译 不同的条件标记,会被编译到不同的平台 开头:[#ifdef]或[#ifndef] + 平台名称 结尾:[#endif] html中: js中: css中 ...
- ES实战- data too large, data for
场景 客户现场业务系统突然查询不到数据,个人一开始分析以为是聚合查询报错,于是去看了下系统日志,看到如下日志打印: Caused by: ElasticsearchStatusException[El ...
- ES6-Promise上
一.Promise作用:解决回调地狱问题 transitionend是过渡结束事件,只要过渡结束就会触发: 回调地狱:指的是层层嵌套的回调函数,代码看起来非常晕 <!DOCTYPE html&g ...
