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 删除无限级目录与文件代码共享
Nov 22 PHP
snoopy 强大的PHP采集类使用实例代码
Dec 09 PHP
php标签云的实现代码
Oct 10 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
PHP开发制作一个简单的活动日程表Calendar
Jun 20 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 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 处理图片的类实现代码
2009/10/23 PHP
PHP 变量类型的强制转换
2009/10/23 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
面向初学者的Python编辑器Mu
2018/10/08 Python
详解Python正则表达式re模块
2019/03/19 Python
django 取消csrf限制的实例
2020/03/13 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
python归并排序算法过程实例讲解
2020/11/04 Python
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
质检员岗位职责
2013/12/17 职场文书
报关专员求职信范文
2014/02/22 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
个人务虚会发言材料
2014/10/20 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
python中__slots__节约内存的具体做法
2021/07/04 Python
python字符串的一些常见实用操作
2022/04/06 Python
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python