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 相关文章推荐
在Windows版的PHP中使用ADO
Oct 09 PHP
利用PHP实现与ASP Banner组件相似的类
Oct 09 PHP
组合算法的PHP解答方法
Feb 04 PHP
PHP实现变色验证码实例
Jan 06 PHP
PHP检测移动设备类mobile detection使用实例
Apr 14 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
Aug 08 PHP
php实现指定字符串中查找子字符串的方法
Mar 17 PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
zend框架实现支持sql server的操作方法
Dec 08 PHP
phpstudy后门rce批量利用脚本的实现
Dec 12 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
10个实用的PHP代码片段
2011/09/02 PHP
php-fpm配置详解
2014/02/12 PHP
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
jQuery插件 tabBox实现代码
2010/02/09 Javascript
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
Python 操作文件的基本方法总结
2017/08/10 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
24式加速你的Python(小结)
2019/06/13 Python
python selenium循环登陆网站的实现
2019/11/04 Python
python flask搭建web应用教程
2019/11/19 Python
Python sorted对list和dict排序
2020/06/09 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
一份婚庆公司创业计划书
2014/01/11 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
公司员工体检通知
2015/04/21 职场文书
信息简报范文
2015/07/21 职场文书
公司备用金管理制度
2015/08/04 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
python flappy bird小游戏分步实现流程
2022/02/15 Python