php中memcache 基本操作实例


Posted in PHP onMay 17, 2015

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 = '127.0.0.1';
$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('name1' => 'jiajiam1', 
'age1'=>12,
'country'=>'china');
$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('inc/common.inc.php');

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

//print_r ($city);exit;

$mem = new Memcache();
$mem-> connect('localhost', '11211');
$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]['city'];
			$v[$i]['city']=$rows[$i]['city'];
			$v[$i]['pm25']=$rows[$i]['pm25'];
			$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]['city'];
			$v[$i]['city']=$rows[$i]['city'];
			$v[$i]['pm25']=$rows[$i]['pm25'];
			$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['area'];
		$pm2_5[$key]= $row['pm2_5'];
	}
	array_multisort($area, SORT_ASC,$pm2_5,SORT_ASC,$getJson);
	for($i=0;$i<count($getJson)-1;$i++){
		if($getJson[$i]['pm2_5']==0)
			$count=0;
		else
			$count=1;
		$sum=$getJson[$i]['pm2_5'];
		for($j=$i+1;$j<count($getJson);$j++,$i++){
			if(strcmp($getJson[$j]['area'],$getJson[$i]['area'])==0 ){
				if($getJson[$j]['pm2_5']==0 ){
					continue;
				}
				else{
					$count++;
					$sum+=$getJson[$j]['pm2_5'];
					$pm2_5=$sum/$count;
				}
			}
			else{
				//insert into mysql
				$result['city']=$getJson[$i]['area'];
				$result['pm25']=intval($pm2_5);
				$query="insert into pm25(city,pm25) values ('".$result['city']."',".$result['pm25'].")";
				mysql_query($query);
				break;
			}
		}
	}
	return $getJson;
}//func write_db


$mem -> close();
?>

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

PHP 相关文章推荐
PHP数据库开发知多少
Oct 09 PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
PHP采用get获取url汉字出现乱码的解决方法
Nov 13 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
两种php实现图片上传的方法
Jan 22 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
Mar 30 PHP
PHP实现过滤各种HTML标签
May 17 #PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 #PHP
php 批量查询搜狗sogou代码分享
May 17 #PHP
PHP解密Unicode及Escape加密字符串
May 17 #PHP
PHP实现远程下载文件到本地
May 17 #PHP
PHP生成json和xml类型接口数据格式
May 17 #PHP
php实现文本数据导入SQL SERVER
May 17 #PHP
You might like
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
jquery ajax执行后台方法
2010/03/18 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
bootstrap table实例详解
2017/01/06 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
Python创建xml的方法
2015/03/10 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
python表格存取的方法
2018/03/07 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
python和c语言的主要区别总结
2019/07/07 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
详解python算法常用技巧与内置库
2020/10/17 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
军训拉歌口号
2014/06/13 职场文书
2014年党建工作总结
2014/11/11 职场文书
银行先进个人总结
2015/02/15 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js