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 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
PHP spl_autoload_register实现自动加载研究
Dec 06 PHP
php 文件上传实例代码
Apr 19 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
php格式化日期实例分析
Nov 12 PHP
PHP文件读写操作相关函数总结
Nov 18 PHP
PHP7匿名类用法分析
Sep 26 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
基于laravel belongsTo使用详解
Oct 18 PHP
PHP 时间处理类Carbon
May 20 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取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
php检测图片主要颜色的方法
2015/07/01 PHP
10个超级有用的PHP代码片段果断收藏
2015/09/23 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
浅谈PHP进程管理
2019/03/08 PHP
PHP时间类完整代码实例
2021/02/26 PHP
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
Python中time模块和datetime模块的用法示例
2016/02/28 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
在Django中实现添加user到group并查看
2019/11/18 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
某公司面试题
2012/03/05 面试题
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
大四本科生的自我评价
2013/12/30 职场文书
合作协议书怎么写
2014/04/18 职场文书
保护环境倡议书300字
2014/05/19 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
党的群众路线教育实践活动个人对照检查材料(校长)
2014/11/05 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android