前言
現(xiàn)在越來越多的網(wǎng)站開始注重統(tǒng)計和用戶行為分析,作為網(wǎng)站經(jīng)常使用的功能,如何讓統(tǒng)計性能更加高,這也是我們需要考慮的事情。本篇通過Redis來優(yōu)化統(tǒng)計功能(以注冊人數(shù)統(tǒng)計為例)。
傳統(tǒng)的統(tǒng)計功能都是直接操作數(shù)據(jù)庫把數(shù)據(jù)插入表中。這樣做,對數(shù)據(jù)庫的性能消耗就會比較大。
思路:
這里我們用到了redis的隊列,注冊的時候先添加到隊列,然后在處理的時候出隊,并且把人數(shù)添加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;
//自增 添加注冊人數(shù)統(tǒng)計 如果key不存在 則會初始化為0
$redis->incr('register_num');
}else{
echo "deal finish";
}
}
以上這篇PHP+Redis 消息隊列 實現(xiàn)高并發(fā)下注冊人數(shù)統(tǒng)計的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- PHP并發(fā)場景的三種解決方案代碼實例
- php并發(fā)加鎖問題分析與設(shè)計代碼實例講解
- PHP解決高并發(fā)的優(yōu)化方案實例
- php多進程模擬并發(fā)事務(wù)產(chǎn)生的問題小結(jié)
- PHP利用Mysql鎖解決高并發(fā)的方法
- php curl批處理實現(xiàn)可控并發(fā)異步操作示例
- php處理搶購類功能的高并發(fā)請求
- PHP開發(fā)中解決并發(fā)問題的幾種實現(xiàn)方法分析
- PHP使用Redis實現(xiàn)防止大并發(fā)下二次寫入的方法
- php結(jié)合redis高并發(fā)下發(fā)帖、發(fā)微博的實現(xiàn)方法
- 詳解php處理大并發(fā)大流量大存儲