Heim >php教程 >PHP源码 >php中memcache 基本操作实例

php中memcache 基本操作实例

PHP中文网
PHP中文网Original
2016-05-26 08:18:33960Durchsuche

本文实例讲述了PHP中Memcache的基本操作及用法。分享给大家供大家参考。有需要的小伙伴快来研究下吧。

php中memcache 基本操作实例

<!DOCTYPE html>
<html>
<head>
<title>memcache demo</title>
<meta http-equiv="content-type"content="text/html;chatset=utf-8">
</head>
<body>
<?php
$server_ip = &#39;127.0.0.1&#39;;
$server_port = 11211;

$memcache = new Memcache();
$memcache->connect($server_ip,$server_port);

$memcache->add("name1","user_name1",MEMCACHE_COMPRESSED,0);
$memcache->add("name2","user_name2",MEMCACHE_COMPRESSED,0);
$array1 = array(&#39;name1&#39; => &#39;jiajiam1&#39;, 
&#39;age1&#39;=>12,
&#39;country&#39;=>&#39;china&#39;);
$memcache->add("other",$array1,MEMCACHE_COMPRESSED,20);
$memcache->set("name3","user_name3",MEMCACHE_COMPRESSED,0);
$memcache->replace("name1","user_name_relpace",MEMCACHE_COMPRESSED,0);
$memcache->replace("123","12345");

echo"name1:".$memcache->get("name1")."<br/>";
$memcache->delete("name1");
echo"name1:".$memcache->get("name1")."<br/>";

$array_get = array("name1","name2","name3");

$result_get = $memcache->get($array_get);
foreach ($result_get as $key => $value) {
echo"$key:--->$value<br/>";
}
foreach ($memcache->getStats() as $key => $value) {
echo"$key:--->$value<br/>";
};

echo"<br/>";

foreach($memcache->getExtendedStats() as $key => $value) {
echo"$key:--->$value<br/>";
}
$memcache->close();
?>
</body>
</html>

我们再来看个更加具体些的实例

<?php
include(&#39;inc/common.inc.php&#39;);

if (! isset($city) || ! is_array($city) ) {
	exit;
}

//print_r ($city);exit;

$mem = new Memcache();
$mem-> connect(&#39;localhost&#39;, &#39;11211&#39;);
$expires=15*60;

//check if cache exits
if(($value = $mem-> get($city)) != FALSE) {
	echo "get key from memcache: "."<br />";
	// 	$return=$mem->get($city);
	// 	echo json_encode($return);
}//if
else {
	$resultJson=fetch_data();
	echo count($resultJson)."<br />";
	if(count($resultJson)==1 || empty($resultJson)){
		//从mysql中取值
		echo "get key from mysql:"."<br />";
		$query="select * from pm25";
		$result=mysql_query ($query) ;
		while ($row = mysql_fetch_assoc($result)){
			$rows[]=$row;
		}
		//将获取的值数组存入memcache
		for($i=0;$i<count($rows);$i++){
			$k[$i]=$rows[$i][&#39;city&#39;];
			$v[$i][&#39;city&#39;]=$rows[$i][&#39;city&#39;];
			$v[$i][&#39;pm25&#39;]=$rows[$i][&#39;pm25&#39;];
			$mem -> set($k[$i], $v[$i], false, $expires);
		}
		// 		$return=$mem->get($city);
		// 		echo json_encode($return);
	}//if
	else{
		echo "get key from new_writed mysql:"."<br />";
		write_db($resultJson);
		$query="select * from pm25";
		$result=mysql_query ($query) ;
		while ($row = mysql_fetch_assoc($result)){
			$rows[]=$row;
		}
		//write memcache
		for($i=0;$i<count($rows);$i++){
			$k[$i]=$rows[$i][&#39;city&#39;];
			$v[$i][&#39;city&#39;]=$rows[$i][&#39;city&#39;];
			$v[$i][&#39;pm25&#39;]=$rows[$i][&#39;pm25&#39;];
			$mem -> set($k[$i], $v[$i], false, $expires);
		}
		// 		$return=$mem->get($city);
		// 		echo json_encode($return);
	}//else

}//else

foreach ($city as $k=>$v){
	$return[$k]=$mem->get($v);
}
echo json_encode($return);

function fetch_data() {
	$url="http://www.example.com";
	//$url="";	
	$data = http_get($url);
	$getJson = json_decode($data, true);
	return $getJson;
} //func fetch_data

function write_db($getJson){
	$sql="DELETE FROM pm25";
	mysql_query($sql);
	//sort the json.txt
	foreach ($getJson as $key => $row) {
		$area[$key] = $row[&#39;area&#39;];
		$pm2_5[$key]= $row[&#39;pm2_5&#39;];
	}
	array_multisort($area, SORT_ASC,$pm2_5,SORT_ASC,$getJson);
	for($i=0;$i<count($getJson)-1;$i++){
		if($getJson[$i][&#39;pm2_5&#39;]==0)
			$count=0;
		else
			$count=1;
		$sum=$getJson[$i][&#39;pm2_5&#39;];
		for($j=$i+1;$j<count($getJson);$j++,$i++){
			if(strcmp($getJson[$j][&#39;area&#39;],$getJson[$i][&#39;area&#39;])==0 ){
				if($getJson[$j][&#39;pm2_5&#39;]==0 ){
					continue;
				}
				else{
					$count++;
					$sum+=$getJson[$j][&#39;pm2_5&#39;];
					$pm2_5=$sum/$count;
				}
			}
			else{
				//insert into mysql
				$result[&#39;city&#39;]=$getJson[$i][&#39;area&#39;];
				$result[&#39;pm25&#39;]=intval($pm2_5);
				$query="insert into pm25(city,pm25) values (&#39;".$result[&#39;city&#39;]."&#39;,".$result[&#39;pm25&#39;].")";
				mysql_query($query);
				break;
			}
		}
	}
	return $getJson;
}//func write_db


$mem -> close();
?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:历史上的今天接口apiNächster Artikel:生成指定个数的随机红包