php+memcache实现的网站在线人数统计代码


Posted in PHP onJuly 04, 2014

今天闲来无事,想在博客统计中显示在线人数。在网上找了好多例子,不是数据库存储数据就是文件存储,代码也看起来过于复杂。

晚上回来后,构思了下,看到我服务器中安装有 Memcache 服务,何不用 Memcache 实现呢。

下面就来讲下实现过程:

效果图:

php+memcache实现的网站在线人数统计代码

实现代码:

<?php
$mc = new Memcache ();

// 连接memcache
$mc->connect ( "127.0.0.1", 11211 );

// 获取 在线用户 IP 和 在线时间数据
$online_members = $mc->get ( 'online_members' );

// 如果为空,初始化数据
if (! $online_members) {
 $online_members = array ();
}

// 获取用户ip
$ip = $_SERVER ["REMOTE_ADDR"];

// 为访问用户重新设置在线时间
$online_members [$ip] = time ();

foreach ($online_members as $k => $v) {
 // 如果三分钟后再未访问页面,刚视为过期
 if (time() - $v > 180) {
 unset($online_members[$k]);
 }
}

// 重新设置在线用户数据
$mc->set ( 'online_members', $online_members );

// 重新获取在线用户数据
$online_members = $mc->get ( 'online_members' );

// 输入统计在线人数
echo count($online_members);
?>
PHP 相关文章推荐
基于initPHP的框架介绍
Apr 18 PHP
解析PHP缓存函数的使用说明
May 10 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
Dec 02 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
php处理restful请求的路由类分享
Feb 27 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
php异常处理方法实例汇总
Jun 24 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
PHP中Cookie的使用详解(简单易懂)
Apr 28 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP递归统计系统中代码行数
Sep 19 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 #PHP
CodeIgniter安全相关设置汇总
Jul 03 #PHP
php使用pack处理二进制文件的方法
Jul 03 #PHP
PHP源码分析之变量的存储过程分解
Jul 03 #PHP
ThinkPHP让分页保持搜索状态的方法
Jul 02 #PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 #PHP
Thinkphp中import的几个用法详细介绍
Jul 02 #PHP
You might like
Search Engine Friendly的URL设计
2006/10/09 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
[对联广告] JS脚本类
2006/08/27 Javascript
JavaScript 事件的一些重要说明
2009/10/25 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
vue之nextTick全面解析
2017/05/17 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
Python networkx包的实现
2020/02/14 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
linux比较文件内容的命令是什么
2015/09/23 面试题
工业设计毕业生自荐信
2014/04/13 职场文书
毕业评语大全
2014/05/04 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
实习协议书范本
2014/09/25 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏
python高温预警数据获取实例
2022/07/23 Python