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 相关文章推荐
Access数据库导入Mysql的方法之一
Oct 09 PHP
mysql 搜索之简单应用
Apr 27 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
php生成图片验证码
Jun 09 PHP
PHP处理会话函数大总结
Aug 05 PHP
php给图片添加文字水印方法汇总
Aug 27 PHP
php实现简单爬虫的开发
Mar 28 PHP
php 的多进程操作实践案例分析
Feb 28 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操作XML作为数据库的类
2010/12/19 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
Vue开发实现吸顶效果的示例代码
2018/08/21 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
javascript实现计算器功能
2020/03/30 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
Python实现的随机森林算法与简单总结
2018/01/30 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
python 循环数据赋值实例
2019/12/02 Python
Python如何读取文件中图片格式
2020/01/13 Python
使用Python实现音频双通道分离
2020/12/25 Python
求职简历中个人的自我评价
2013/12/25 职场文书
初三学生个人自我评定
2014/04/06 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
2014和解协议书范文
2014/09/15 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
新员工辞职信范文
2015/05/12 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
Python字典的基础操作
2021/11/01 Python
Mysql事务索引知识汇总
2022/03/17 MySQL