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冒泡排序算法的深入理解
Jun 09 PHP
php页面防重复提交方法总结
Nov 25 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
php对文件夹进行相关操作(遍历、计算大小)
Nov 04 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
php实现socket推送技术的示例
Dec 20 PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 PHP
phpQuery采集网页实现代码实例
Apr 02 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
基于mysql的bbs设计(四)
2006/10/09 PHP
php 多个submit提交表单 处理方法
2009/07/07 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
php计算一个文件大小的方法
2015/03/30 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
Python语言快速上手学习方法
2018/12/14 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
python学习笔记之多进程
2020/08/06 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
前台接待员岗位职责
2014/01/02 职场文书
《童趣》教学反思
2014/02/19 职场文书
电工工作职责范本
2014/02/22 职场文书
职业女性的职业规划
2014/03/04 职场文书
2014年教师工作总结
2014/11/10 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL