PHP操作Memcached的各种数据方式

首先,在实现所说的东西之前,要先确定好这么三件事:

1:安装了Memcached。

2:Memcached支持自己php所用版本。

3:开启了Memcached服务,并打开了php.ini的Memcached模块

如说上述条件都满足了,那么我就说一下如何去用php操作:

为了较为清晰的说明,而且空说无凭,所以我统一在下面的额代码里面加入测试,其中包括了我的所有测试过程:

还要说一下,这里主要测试的是数据的CURD操作。

<?php
	//Memcached是面向对象来操作的

	$mem=new Memcache;		//创建memcache对象
	if(!$mem->connect('127.0.0.1',11211)){
		die("连接失败");	//退出
	}	//连接memcached,参数的IP地址,11211端口

	//增加一组数据:参数分别表示:键名-键值-压缩-保存时间
	/*
	//增加字符串
	if($mem->add('key1','北京',MEMCACHE_COMPRESSED,60)){
		echo "添加数据成功";
	}
	*/
	//增加数字
	/*
	if($mem->add('key1',123456,MEMCACHE_COMPRESSED,120)){
		echo "添加数字成功";
	}*/
	//添加数组
	/*
	$arr = array('北京','天津');
	if($mem->add('key1',$arr,MEMCACHE_COMPRESSED,120)){
		echo "添加数组成功".'<br/>';
	}
	*/
	//添加对象
	/*
	class Dog{
		public $name;
		public $age;
		public function __construct($name,$age){
			$this->name=$name;
			$this->age=$age;
		}
	}
	$dog1=new Dog('小白',40);
	if($mem->add('key1',$dog1,MEMCACHE_COMPRESSED,60)){
		echo "添加对象成功";
	}
	*/
	//添加空值(0,null,(),false,0.0, “0” 空数组,空对象)
	/*
	if($mem->add('key1',null,MEMCACHE_COMPRESSED,60)){
		echo "添加空值成功";
	}*/
	//添加资源类型
	/*
	$con=mysql_connect('localhost','root','toor');
	//var_dump($con);
	//事实说明Memcached不能够保存资源类型数据
	if(!$con){
		echo "添加资源失败";
	}else{
		if($mem->add('key1',$con,MEMCACHE_COMPRESSED,60)){
			echo "添加资源成功";
		}
	}
	*/
	//两种情况,键名不存在:就创建数据,反之修改
	/*
	if($mem->set('key1','上海',MEMCACHE_COMPRESSED,60)){
		echo "修改数据成功";
	}
	*/
	//查询数据,和控制台的方式相同,返回的是结果

	$value=$mem->get('key1');
	print_r($value);

?>

以上是php操作Memcached的各种数据方式,有两点要说

1:当保存输出对象数据的时候,如果在另一个页面去输出,会出现数据不完整的错误,可以引入类文件去解决。

2:实际开发中,可能需要进行序列化处理,这个会在我的下一篇博文介绍

时间: 2024-12-14 12:14:21

PHP操作Memcached的各种数据方式的相关文章

通过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 //创建一个m

python操作memcached以及分布式

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

Memcached存Session数据、访问安全性、使用场景总结(3)

最近做了一个单点登录SSO,登陆后的凭证放到Memcached令牌放到Cookies:但是用户经常掉线,开发环境和测试却没有这个问题,最后从Memcached找到原因. Memcached概念.作用.运行原理.特性.不足简单梳理(1) Memcached下载安装.NET对Memcached进行CRUD操作(2) Memcached存Session数据.访问安全性.使用场景总结(3) 一.Session数据放入到Memcached? Memcached创建者Dormando写过两篇文章: Sess

memcached学习笔记3--telnet操作memcached

方式: 一.telnet访问memcached缓存系统(主要用于教学,不讨论) telnet 127.0.0.1 11211     => telnet IP地址 端口号 //往Memcached中存放数据 add username 0 60 5       => add:添加命令 username:key的名字(是以key/value存放) 0:标示,一般不用管 60:缓存多长时间,超过时间自动删除,单位(秒) s 5: 表示放入的数据大小 注意:如果一个key已经存在,再要添加数据到这个k

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

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

让php或httpd服务来使用memcached存储session数据

memcached命令行 memcached语法 <command?name>?<key>?<flags>?<exptime>?<bytes>\r\n?<data?block>\r\n注:??\r\n在windows下是Enter键 <command?name>可以是set,?add,?replace set ? ? ? ? ? 表示按照相应的<key>存储该数据,??没有的时候增加,??有的时候覆盖 add

C# HttpWebRequest提交数据方式浅析

原文:http://developer.51cto.com/art/200909/149995.htmC# HttpWebRequest提交数据方式其实就是GET和POST两种,那么具体的实现以及操作注意事项是什么呢?那么本文就向你详细介绍C# HttpWebRequest提交数据方式的这两种利器. AD:2014WOT全球软件技术峰会北京站 课程视频发布 C# HttpWebRequest提交数据方式学习之前我们先来看看什么是HttpWebRequest,它是 .net 基类库中的一个类,在命

不带字库LCD12864操作源程序(仅支持串口方式)

/*************************************************** LCD:晶联讯电子 JLX12864G-086-PN(不带字库 驱动IC-UC1701X) 仅支持串行驱动方式 ***************************************************/ //========c12864.h============================================= #ifndef _C12864_H_ #defi

memcached—Java操作Memcached实例

前面博客介绍了如何在Windows操作系统中安装Memcached,总结一下如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import jav