PHP+Redis 消息队列 实现高并发下注册人数统计的实例


Posted in PHP onJanuary 29, 2018

前言

现在越来越多的网站开始注重统计和用户行为分析,作为网站经常使用的功能,如何让统计性能更加高,这也是我们需要考虑的事情。本篇通过Redis来优化统计功能(以注册人数统计为例)。

传统的统计功能都是直接操作数据库把数据插入表中。这样做,对数据库的性能消耗就会比较大。

思路:

这里我们用到了redis的队列,注册的时候先添加到队列,然后在处理的时候出队,并且把人数添加redis里。

代码:

<?php
//register.php 
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$i=0;
while(true){
  $i++;
  //假定一直有人在注册
  $redis->rpush("register_success",$i);
}
<?php
//deal.php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
while (true) {
  //list类型出队操作
  $value = $redis->lpop('register_success');
  if($value){
    echo "deal value : ".$value;
    //自增 添加注册人数统计  如果key不存在 则会初始化为0
    $redis->incr('register_num');
  }else{
    echo "deal finish";
  }
}

以上这篇PHP+Redis 消息队列 实现高并发下注册人数统计的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php中通过smtp发邮件的类,测试通过
Jan 22 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
关于svn冲突的解决方法
Jun 21 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
php输入数据统一类实例
Feb 23 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
Dec 07 PHP
php文件管理基本功能简单操作
Jan 16 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
Laravel框架实现文件上传的方法分析
Sep 29 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
PHP 使用二进制保存用户状态的实例
Jan 29 #PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 #PHP
Ubuntu上安装yaf扩展的方法
Jan 29 #PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 #PHP
php实现的AES加密类定义与用法示例
Jan 29 #PHP
php 判断IP为有效IP地址的方法
Jan 28 #PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 #PHP
You might like
PHP4 与 MySQL 交互使用
2006/10/09 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
JavaScript简介
2015/02/15 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
Python命名空间详解
2014/08/18 Python
Python编程中的异常处理教程
2015/08/21 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
学生手册家长评语
2014/02/10 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
服务整改报告
2014/11/06 职场文书
无故旷工检讨书
2015/08/15 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python
Java并发编程必备之Future机制
2021/06/30 Java/Android
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS