前言
現(xiàn)在越來越多的網(wǎng)站開始注重統(tǒng)計(jì)和用戶行為分析,作為網(wǎng)站經(jīng)常使用的功能,如何讓統(tǒng)計(jì)性能更加高,這也是我們需要考慮的事情。本篇通過Redis來優(yōu)化統(tǒng)計(jì)功能(以注冊(cè)人數(shù)統(tǒng)計(jì)為例)。
傳統(tǒng)的統(tǒng)計(jì)功能都是直接操作數(shù)據(jù)庫(kù)把數(shù)據(jù)插入表中。這樣做,對(duì)數(shù)據(jù)庫(kù)的性能消耗就會(huì)比較大。
思路:
這里我們用到了redis的隊(duì)列,注冊(cè)的時(shí)候先添加到隊(duì)列,然后在處理的時(shí)候出隊(duì),并且把人數(shù)添加redis里。
代碼:
<?php //register.php $redis = new Redis(); $redis->connect('127.0.0.1',6379); $i=0; while(true){ $i++; //假定一直有人在注冊(cè) $redis->rpush("register_success",$i); }
<?php //deal.php $redis = new Redis(); $redis->connect('127.0.0.1',6379); while (true) { //list類型出隊(duì)操作 $value = $redis->lpop('register_success'); if($value){ echo "deal value : ".$value; //自增 添加注冊(cè)人數(shù)統(tǒng)計(jì) 如果key不存在 則會(huì)初始化為0 $redis->incr('register_num'); }else{ echo "deal finish"; } }
以上這篇PHP+Redis 消息隊(duì)列 實(shí)現(xiàn)高并發(fā)下注冊(cè)人數(shù)統(tǒng)計(jì)的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持。
您可能感興趣的文章:
- php結(jié)合redis實(shí)現(xiàn)高并發(fā)下的搶購(gòu)、秒殺功能的實(shí)例
- php結(jié)合redis高并發(fā)下發(fā)帖、發(fā)微博的實(shí)現(xiàn)方法
- PHP基于Redis消息隊(duì)列實(shí)現(xiàn)發(fā)布微博的方法
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。