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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
写php分页时出现的Fatal error的解决方法
Apr 18 PHP
php记录日志的实现代码
Aug 08 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
php数组键值用法实例分析
Feb 27 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
safari下载文件自动加了html后缀问题
Nov 09 PHP
PHP实现简易计算器功能
Aug 28 PHP
PHP实现一个按钮点击上传多个图片操作示例
Jan 23 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提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
js数据类型检测总结
2018/08/05 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
基于python实现高速视频传输程序
2019/05/05 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
师生聚会感言
2014/01/26 职场文书
个人借款担保书
2014/04/02 职场文书
请假条怎么写
2014/04/10 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
母亲节演讲稿
2014/05/27 职场文书
科学发展观活动总结
2014/08/28 职场文书
在职人员跳槽求职信
2015/03/20 职场文书