通过memcache动态运行库操作memcached服务,进行CURD

具体学习参考php参考手册:

操作memcached的几种方式:

bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )

如果报 expire 设为0 表示,永不过期.(只要memcache不重新启动,就永远在mem中)

exprie 直接给的是秒数,则最大 30*3600*24

如果你希望保持时间超过30  time()+天数*3600*24 即可

mem1.php

<?php

    //创建一个mem对象实例
	$mem=new Memcache;

	if(!$mem->connect("127.0.0.1",11211)){
		die('连接失败!');
	}

	//增加

	//1.增加一个字串
/*	if($mem->set('key1',"beijing",MEMCACHE_COMPRESSED,60)){

		echo '添加ok';
	}*/

	//2.添加数值
/*	if($mem->set('key1',100,MEMCACHE_COMPRESSED,60)){

		echo '添加ok';
	}*/

	//3.添加数组
	//在添加数组是,根据需要. 希望序列号放入  ,
	//serialize<=>unserialize, 如果根据需要,也可以json_encode <=> json_decode
	$arr=array("bj",'tj');
	if($mem->set('key1',$arr,MEMCACHE_COMPRESSED,time()+31*3600*24)){

		echo '添加数组ok99111';
	}
	//4.添加对象
/*	class Dog{
		public $name;
		public $age;
		public function __construct($name,$age){
			$this->name=$name;
			$this->age=$age;
		}
	}

	$dog1=new Dog('小狗',50);
	if($mem->set('key1',$dog1,MEMCACHE_COMPRESSED,60)){

		echo '添加对象ok';
	}*/

	//5.添加null 布尔值 ,null就是null,布尔转化为字符串 0
/*	if($mem->set('key1',false,MEMCACHE_COMPRESSED,60)){

		echo '添加布尔ok';
	}*/

	//6. 资源类型放入.
/*	$con=mysql_connect("127.0.0.1","root","root");
	if(!$con){
		die('连接数据库失败');
	}
	var_dump($con);
	echo "<br/>"; 添加后资源型变量变为0 目前不支持
	if($mem->set('key1',$con,MEMCACHE_COMPRESSED,60)){

		echo '添加资源ok';
	}*/

	//查询

	$val=$mem->get('key1');

	var_dump($val);

	//修改
	//可以使用replace
	if($mem->replace("key11",'hello',MEMCACHE_COMPRESSED,60)){
		echo 'replace ok';
	}else{
		echo 'replace no ok';
	}

	//删除
	echo "<br/>";
	if($mem->delete('key14')){
		echo 'key14 删除';
	}else{
		echo 'key14不存在';
	}

//在另外文件中取出对象时,有个注意的地方,对应php5.2这个版本会提示错误,

//对php5.3这个版本会提示 incomplete 信息, 解决方法是声明类定义即可

mem2.php

<?php

	//这个文件去操作memcached服务

	 //创建一个mem对象实例
	$mem=new Memcache;

	if(!$mem->connect("127.0.0.1",11211)){
		die('连接失败!');
	}

	//在另外文件中取出对象时,有个注意的地方,对应php5.2这个版本会提示错误,
	//对php5.3这个版本会提示 incomplete 信息, 解决方法是声明类定义即可

	class Dog{
		public $name;
		public $age;
		public function __construct($name,$age){
			$this->name=$name;
			$this->age=$age;
		}
	}

	$dog=$mem->get('key1');

	var_dump($dog);

test.php 说明serilize 和 json_encode用法:

图示:

//什么时候使用serilize (将对象直接保存到文件里)什么时候使用json_encode [ajax配合]

<?php

/*	class Dog{
		public $name;
		public $age;
		public function __construct($name,$age){
			$this->name=$name;
			$this->age=$age;
		}
	}
	$dog2=new Dog('小黄',40);
	//我希望把这个对象保存到磁盘. ->serilize

	file_put_contents("d:/my.log",serialize($dog2));
	echo 'save ok!';
	$dog=unserialize(file_get_contents("d:/my.log"));
	echo "<br/>";
	echo $dog->name;

	$arr=array('city1'=>"bj",'city'=>"tj");

	file_put_contents("d:/my2.log",json_encode($arr));*/

	$host="127.0.0.1:1134";
	 list ($ip, $port) = explode (":", $host);

	 echo $ip."===".$port;
时间: 2024-10-12 16:11:36

通过memcache动态运行库操作memcached服务,进行CURD的相关文章

PHP源码来操作memcached服务

如何使用PHP源码来操作memcached服务 如果管理员不让我们去加载 memcache.dll 文件,我们可以直接通过源码操作 看高手的源代码也很有意思! 特点: 1.不需要开启memcache扩展 2.使用fsockopen()套接字连接memcached 3.同样执行执行CRUD 引用别人写的一个类: memcached-client.php <?php // // +------------------------------------------------------------

linux指定动态运行库的位置

动态运行库在windows.linux下均广泛使用.windows下通常为dll文件,linux下为so文件.不过,对于部署程序,这两个系统查找依赖的运行库文件时却不一样.对于windows而言,优先查找当前目录下,然后再到系统库文件C:\windows\system32(记不太清楚,好像是这个位置)下查找.这个特性极大的方便了程序的部署,程序员只需要把相关的dll打包就OK,这也让很多程序可以制作成绿色版.而在linux下,默认只到/lib./usr/lib和/usr/local/lib查找,

使用Django.core.cache操作Memcached导致性能不稳定的分析过程

使用Django.core.cache操作Memcached导致性能不稳定的分析过程 最近测试一项目,用到了Nginx缓存服务,那可真是快啊!2Gb带宽都轻易耗尽. 不过Api接口无法简单使用Nginx缓存,使用Memcached作二级缓存.但发现性能非常之不稳定,最终发现问题出在Memcached上.大压力时Memcached无法连接,即使使用Telnet也连接超时/连接被拒绝. 与开发沟通后发现用的django.core.cache操作Memcached,于是要求使用其它库取代,选中pyth

企业级Memcached服务应用实践。

企业级Memcached服务应用实践 Memcached服务 一, Memcached介绍 1.1 Memcached与常见同类软件对比 (1)Memcached是什么? Memcached是一个开源的,支持高性能,高并发的分布式内存缓存系统,由C语言编写,总共2000多行代码.从软件名称上看,前3个字符"Mem"就是内存的意思,而接下来的后面5个字符"cache"就是缓存的意思,最后一个字符d,是daemon的意思,代表是服务器端守护进程模式服务. Memcach

memcached演练(2) 访问memcached服务

通过上节<memcached演练(1) 搭建memcached服务>,已经成功在linux虚拟机上安装了memcached服务,并设置了自启动. STAT version 1.4.29 Mem:          1891 主要内容 使用telnet命令行工具,操作memcached服务 使用java spymemcached工具访问memcached服务 监控插入不同数据量的数据,响应时间 监控memcached主机繁忙&清闲对比情况 调整memcached的内存指标,插入相同的数据

Memcached技术04 PHP操作memcached(一)

如何使用php程序操作我们的memcached服务 danga公司为了能够让php程序能够操作memcached,专门提供了一套供php使用的扩展程序(即php_memcache.dll) 步骤,准备工作. (1) 把 php_memcache.dll 文件拷贝 php的ext 下 ? 不同版本的php 所使用的 php_memcache.dll 的版本不一样 (2) 修改php.ini文件,加载 php_memcache.dll (该文件就是封装了一堆函数) ;加载php_memcache.d

.NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper

.NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 参考示例代码,如下所示: /// <summary> /// MySql 数据库操作类 /// </summary> public class MySqlHelper { #region MysqlConnection private static MySql.Data.MySqlClient.MySqlConnection _mysqlConnection; /// <su

创建线程消息循环服务于动态连接库

因为动态连接库需要对DBT_DEVICEARRIVAL.DBT_DEVICEREMOVECOMPLETE等消息的处理,所以拿一个不太理想的usb-hid的dll来说明,不多说直接上代码 1 // 下列 ifdef 块是创建使从 DLL 导出更简单的 2 // 宏的标准方法.此 DLL 中的所有文件都是用命令行上定义的 WIN32USB_EXPORTS 3 // 符号编译的.在使用此 DLL 的 4 // 任何其他项目上不应定义此符号.这样,源文件中包含此文件的任何其他项目都会将 5 // WIN

python操作memcached以及分布式

memcached 是以 LiveJournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件.现在已成为 mixi.Facebook.LiveJournal 等众多服务中提高 Web 应用扩展性的重要因素. 许多 Web 应用都将数据保存到 RDBMS 中,应用服务器从中读取数据并在浏览器中显示.但随着数据量的增大.访问的集中,就会出现 RDBMS 的负担加重.数据库响应恶化.网站显示延迟等重大影响.这时就该 memcached 大显身手