PHP使用redis實(shí)現(xiàn)統(tǒng)計(jì)緩存mysql壓力的方法
本文實(shí)例講述了PHP使用redis實(shí)現(xiàn)統(tǒng)計(jì)緩存mysql壓力的方法。分享給大家供大家參考,具體如下:
<?php
header("Content-Type:text/html;charset=utf-8");
include 'lib/mysql.class.php';
$mysql_obj = mysql::getConn();
//redis
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
if(isset($_SERVER['HTTP_REFERER'])){
$url_md5 = md5($_SERVER['HTTP_REFERER']);
}
$adve_key = 'adve';
$adve_key_exists = 'adve_exists';
if(!$redis->exists($adve_key_exists)){
$list = $mysql_obj->fetch_array("select * from user_online_adve");
if($list){
foreach ($list as $key => $value) {
$url_hash = md5($value['adve_url']);
$adve_hash_key = $adve_key.":".$url_hash;
$id = $value['id'];
$redis->set($adve_hash_key,$id);
$redis->set($adve_key_exists,true);
//$redis->hmset($adve_hash_key, array('id' =>$id));
//print_r($redis->get($adve_hash_key));
}
}
}
$adve_new_key = $adve_key.':'.$url_md5;
if($redis->exists($adve_new_key)){
$adve_plus = $adve_new_key.":plus" ;
if(!$redis->exists($adve_plus)){
$redis->set($adve_plus,1);
}else{
$redis->incr($adve_plus);
$num = $redis->get($adve_plus);
if($num >10){
$id = $redis->get($adve_new_key);
// insert to sql;
$mysql_obj->query("update user_online_adve set adve_num=adve_num+$num where id=$id");
$redis->set($adve_plus,1);
}
}
}
header('HTTP/1.0 301 Moved Permanently');
header('Location: https://itunes.apple.com/cn/app/san-guo-zhi15-ba-wangno-da-lu/id694974270?mt=8');
/*
if(){
$adve_plus = $adve_key.":plus" ;
if($redis->exists($adve_plus)){
$redis->incr($adve_plus);
}else{
$redis->set($adve_plus,1);
}
echo $redis->get($adve_plus);
}
foreach ($list as $key => $value) {
$url_hash = md5($value['adve_url']);
$id = $value['id'];
$adve_num = $value['adve_num'];
$adve_plus = $adve_key.":plus" ;
if($redis->exists($adve_plus)){
$redis->incr($adve_plus);
}else{
$redis->set($adve_plus,1);
}
echo $redis->get($adve_plus);
//if($redis->)
//$redis->hmset($adve_key, array('id' =>$id, 'adve_num'=>$adve_num));
//print_r($redis->hmget("adve:$url_hash", array('adve_num')));
}
print_r($list);
*/
希望本文所述對(duì)大家php程序設(shè)計(jì)有所幫助。
相關(guān)文章
php計(jì)算兩個(gè)整數(shù)的最大公約數(shù)常用算法小結(jié)
這篇文章主要介紹了php計(jì)算兩個(gè)整數(shù)的最大公約數(shù)常用算法,實(shí)例總結(jié)了求最大公約數(shù)的三種常用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
php無(wú)限級(jí)分類(lèi)實(shí)現(xiàn)方法分析
這篇文章主要介紹了php無(wú)限級(jí)分類(lèi)實(shí)現(xiàn)方法,結(jié)合2個(gè)簡(jiǎn)單實(shí)例形式分析了php通過(guò)遞歸與普通算法實(shí)現(xiàn)無(wú)限級(jí)分類(lèi)的相關(guān)操作技巧,需要的朋友可以參考下2016-10-10
PHP正則之正向預(yù)查與反向預(yù)查講解與實(shí)例
這篇文章主要介紹了PHP正則之正向預(yù)查與反向預(yù)查詳解與實(shí)例,需要的朋友可以參考下2020-04-04
PHP 獲取文件路徑(靈活應(yīng)用__FILE__)
__FILE__ ,是返回文件的完整路徑和文件名。如果用在包含文件中,則返回包含文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個(gè)絕對(duì)路徑,而在此之前的版本有時(shí)會(huì)包含一個(gè)相對(duì)路徑2013-02-02
PHP連接MySQL數(shù)據(jù)的操作要點(diǎn)
這篇文章主要介紹了PHP連接MySQL數(shù)據(jù)的操作要點(diǎn),本文直接給出代碼實(shí)例,需要的朋友可以參考下2015-03-03
Ajax實(shí)現(xiàn)對(duì)靜態(tài)頁(yè)面的文章訪(fǎng)問(wèn)統(tǒng)計(jì)功能示例
這篇文章主要介紹了Ajax實(shí)現(xiàn)對(duì)靜態(tài)頁(yè)面的文章訪(fǎng)問(wèn)統(tǒng)計(jì)功能,結(jié)合簡(jiǎn)單實(shí)例形式分析了靜態(tài)頁(yè)面實(shí)現(xiàn)訪(fǎng)問(wèn)統(tǒng)計(jì)功能的計(jì)數(shù)操作相關(guān)技巧,需要的朋友可以參考下2016-10-10
如何用C語(yǔ)言編寫(xiě)PHP擴(kuò)展的詳解
本篇文章是對(duì)用C語(yǔ)言編寫(xiě)PHP擴(kuò)展進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php解析html類(lèi)庫(kù)simple_html_dom(詳細(xì)介紹)
一直以來(lái)使用php解析html文檔樹(shù)都是一個(gè)難題。Simple HTML DOM parser 幫我們很好地解決了這個(gè)問(wèn)題??梢酝ㄟ^(guò)這個(gè)php類(lèi)來(lái)解析html文檔,對(duì)其中的html元素進(jìn)行操作 (PHP5+以上版本)2013-07-07

