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基础知识:类与对象(3) 构造函数和析构函数
Dec 13 PHP
用mysql内存表来代替php session的类
Feb 01 PHP
PHP 身份证号验证函数
May 07 PHP
PHP中的array数组类型分析说明
Jul 27 PHP
理解php Hash函数,增强密码安全
Feb 25 PHP
PHP 通过Socket收发十六进制数据的实现代码
Aug 16 PHP
php实现memcache缓存示例讲解
Dec 04 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
PHP文件上传判断file是否己选择上传文件的方法
Nov 10 PHP
PHP+JavaScript实现无刷新上传图片
Feb 21 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP中str_split()函数的用法讲解
Apr 11 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开发中常用的8个小技巧
2008/08/27 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
jquery foreach使用示例
2013/09/12 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
举例讲解Python设计模式编程的代理模式与抽象工厂模式
2016/01/16 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
浅谈Python基础—判断和循环
2019/03/22 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
俄罗斯茶和咖啡网上商店:Tea.ru
2021/01/26 全球购物
Python使用openpyxl复制整张sheet
2021/03/24 Python
工程力学硕士生的自我评价范文
2013/11/16 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
先进工作者推荐材料
2014/12/23 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
2019餐饮行业创业计划书!
2019/06/27 职场文书
创业计划书之家教中心
2019/09/25 职场文书