当前位置:文档之家› php操作memcache

php操作memcache

php操作memcache
php操作memcache

memcache函数所有的方法列表如下:

Memcache::add –添加一个值,如果已经存在,则返回false

Memcache::addServer –添加一个可供使用的服务器地址

Memcache::close –关闭一个Memcache对象

Memcache::connect –创建一个Memcache对象

memcache_debug –控制调试功能

Memcache::decrement –对保存的某个key中的值进行减法操作

Memcache::delete –删除一个key值

Memcache::flush –清除所有缓存的数据

Memcache::get –获取一个key值

Memcache::getExtendedStats –获取进程池中所有进程的运行系统统计

Memcache::getServerStatus –获取运行服务器的参数

Memcache::getStats –返回服务器的一些运行统计信息

Memcache::getVersion –返回运行的Memcache的版本信息

Memcache::increment –对保存的某个key中的值进行加法操作

Memcache::pconnect –创建一个Memcache的持久连接对象

Memcache::replace -对一个已有的key进行覆写操作

Memcache::set –添加一个值,如果已经存在,则覆写

Memcache::setCompressThreshold –对大于某一大小的数据进行压缩

Memcache::setServerParams –在运行时修改服务器的参数

Memcache::add用法

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

说明:

如果$key不存在的时候,使用这个函数来存储$var的值。功能相同的函数是memcache_add()。

参数:

$key :将要存储的键值。

$var:存储的值,字符型和整型会按原值保存,其他类型自动序列化以后保存。

$flag:是否用MEMCACHE_COMPRESSED来压缩存储的值,true表示压缩,false表示不压缩。

$expire:存储值的过期时间,如果为0表示不会过期,你可以用unix时间戳或者描述来表示从现在开始的时间,但是你在使用秒数表示的时候,不要超过2592000秒(表示30天)。

返回值:

如果成功则返回TRUE,失败则返回FALSE。如果$key值已经存在,则会返回FALSE。其他情况下Memcache::add()的用法类似于Memcache::set()。

例子:

$memcache_obj = memcache_connect(”localhost”, 11211);

memcache_add($memcache_obj, ’var_key’,’test variable’,false, 30);

$memcache_obj->add(’var_key’,’test variable’,false, 30);

?>

Memcache::addServer用法

bool Memcache::addServer ( string $host [, int $port [, bool $persistent [, int $weight [, int$timeou t [, int $retry_interval [, bool $status [, callback $failure_callback ]]]]]]] )

说明:

添加一个可供使用的服务器地址到连接池中,连接用Memcache::addServer打开,脚本执行完后自动关闭,或者可以用Memcache::close()手动关闭。相同函数是memcache_add_server()。当用这个方法的时候(相对于Memcache::connect()和Memcache::pconnect()方法),网络连接只有等需要的时候才会建立,因此不会因为增加很多的服务器到连接池而增加系统负担,因为很多服务器可能没有使用。

故障恢复会发生在这个方法执行的任何阶段,只要其他的服务器是正常的,这些连接请求的失败用户不会注意到。任何一种socket或者memcached服务器级的错误可以触发故障恢复。正常的客户端错误比如增加一个存在的键值不会引发故障恢复。

参数:

$host服务器的地址

$port服务器端口

$persistent是否是一个持久连接

$weight这台服务器在所有服务器中所占的权重

$timeout连接的持续时间

$retry_interval连接重试的间隔时间,默认为15,设置为-1表示不进行重试

$status控制服务器的在线状态

$failure_callback允许设置一个回掉函数来处理错误信息。

返回值:

如果成功则返回TRUE,失败则返回FALSE。

例子:

$memcache = new Memcache;

$memcache->addServer(’memcache_host’, 11211);

$memcache->addServer(’memcache_host2′, 11211);

$memcache_obj = memcache_connect(’memcache_host’, 11211);

memcache_add_server($memcache_obj, ’memcache_host2′, 11211);

?>

Memcache::close用法

bool Memcache::close ( void )

说明:

关闭memcache服务器连接。这个函数不会关闭长连接,长连接只有在web服务器关闭或者重启的时候才会关闭。相同的函数memcache_close()

返回值:

如果成功则返回TRUE,失败则返回FALSE。

例子:

$memcache_obj = memcache_connect(’memcache_host’, 11211);

memcache_close($memcache_obj);

$memcache_obj = new Memcache;

$memcache_obj->connect(’memcache_host’, 11211);

$memcache_obj->close();

?>

Memcache::connect用法

bool Memcache::connect ( string$host [, int $port [, int $timeout ]] )

说明:

打开memcached服务器连接,建立一个到memcached服务器的连接,用Memcache::connect 打开的连接会在脚本执行完毕后自动关闭。你也可以用Memcache::close()去关闭连接。相同的函数是memcache_connect()。

参数:

$host:指向memcached正在收听的链接的主机,这个参数会有另一种特殊的连接方式unix:///path/to/memcached.sock,即用unix的域名sockets,这种情况下,端口必须设置为0 $port:指向memcached正在收听的链接的端口,用unix的域名sockets的情况下,端口必须设置为0

$timeout:用于连接守护进程的秒数,当你改变默认的1秒的值的时候,你需要考虑一下,如果你的连接太慢的话,你可能会失去缓存的优势。

返回值:

如果成功则返回TRUE,失败则返回FALSE。

例子:

$memcache_obj = memcache_connect(’memcache_host’, 11211);

$memcache = new Memcache;

$memcache->connect(’memcache_host’, 11211);

?>

memcache::debug

bool memcache_debug ( bool $on_off )

说明:

控制调试功能,前提是php在编译的时候使用了-enable-debug选项,否则这个函数不会有作用。

参数:

$on_off:true表示开启调试,false表示关闭调试

返回值:

如果php在编译的时候使用了-enable-debug选项,返回true,否则返回false Memcache::decrement用法

int Memcache::decrement ( string$key [, int $value ] )

说明:

Memcache::decremen方法的作用是对保存的某个key中的值进行减法操作,用法跟Memcache::increment类似。

你也可以用memcache_decrement()函数。

参数:

Key:想要减少的键的名字

Value:想要减少的值。

返回值:

如果成功,返回被减少后的值,如果失败返回false。

例子:

$memcache = new Memcache;

$memcache->connect(’localhost’, 11211);

$memcache->set(’test_item’, 8);

$memcache->increment(’test_item’, 4);

echo$memcache->decrement(’test_item’, 7);

// 显示 5

?>

这个例子连Memcache::increment函数都一块演示了。

Memcache::delete用法

bool Memcache::delete ( string$key [, int $timeout ] )

说明:

删除一个key值,如果参数$timeout被设置,那么存储的值会在设置的秒数以后过期,你也可以用函数memcache_delete()

返回值:

如果成功则返回TRUE,失败则返回FALSE。

例子:

$memcache_obj = memcache_connect(’memcache_host’, 11211);

memcache_delete($memcache_obj, ’key_to_delete’, 10);

$memcache_obj = new Memcache;

$memcache_obj->connect(’memcache_host’, 11211);

$memcache_obj->delete(’key_to_delete’, 10);

?>

Memcache::flush

bool Memcache::flush ( void )

说明:

清除所有缓存的数据。Memcache::flush实际上没有释放资源,它仅仅将所有的缓存标记为过期,这样可以使新的缓存来覆盖被占的内存空间。一样的函数是memcache_flush()

返回值:

如果成功则返回TRUE,失败则返回FALSE。

例子:

$memcache_obj = memcache_connect(’memcache_host’, 11211);

memcache_flush($memcache_obj);

$memcache_obj = new Memcache;

$memcache_obj->connect(’memcache_host’, 11211);

$memcache_obj->flush();

?>

Memcache::get

string Memcache::get ( string$key [, int &$flags ] )

array Memcache::get ( array$keys [, array &$flags ] )

说明:

方法的作用是获取一个key值,key值可以是一个数组,结果会包含键值对。

参数:

$key是键值或者一个键的数组值。

$flags如果这个参数存在,那么$flags跟写入这个参数的值相关,这些$flags 类似于Memcache::set()函数里的$flags。

返回值:

如果成功,则返回key对应的值,如果失败则返回false.

例子:

$memcache_obj = memcache_connect(’memcache_host’, 11211);

$var = memcache_get($memcache_obj, ’some_key’);

$memcache_obj = new Memcache;

$memcache_obj->connect(’memcache_host’, 11211);

$var = $memcache_obj->get(’some_key’);

$memcache_obj = memcache_connect(’memcache_host’, 11211);

$var = memcache_get($memcache_obj, Array(’some_key’,’another_key’));

$memcache_obj = new Memcache;

$memcache_obj->connect(’memcache_host’, 11211);

$var = $memcache_obj->get(Array(’some_key’,’second_key’));

?>

Memcache::getExtendedStats

array Memcache::getExtendedStats ([ string$type [, int $slabid [, int $limit ]]] )

说明:

获取进程池中所有进程的运行系统统计。相同函数是memcache_get_extended_stats()

参数:

$type表示要求返回的类型:reset, malloc, maps, cachedump, slabs, items, sizes; $slabid第一个参数设置为”cachedump”时使用的。

$limit第一个参数设置为”cachedump”时使用的。

返回值:

如果成功,返回统计信息,失败会返回false

例子:

$memcache_obj = new Memcache;

$memcache_obj->addServer(’memcache_host’, 11211);

$memcache_obj->addServer(’failed_host’, 11211);

$stats = $memcache_obj->getExtendedStats();

//slabs机制分配管理内存的情况

$statsslab = $memcache_obj->getExtendedStats(slabs);

?>

Memcache::getServerStatus

int Memcache::getServerStatus ( string$host [, int $port ] )

说明:

获取运行服务器的参数。返回一个服务器在线或者离线的状态。相同的函数是

memcache_get_server_status()

参数:

$host:正在收听的连接的主机

$port正在收听的连接的主机的端口,默认是11211

返回值:

成功返回服务器状态,服务器没有启动会返回0,其他数字的时候表示服务器是启动状态的。例子:

$memcache = new Memcache;

$memcache->addServer(’memcache_host’, 11211);

echo$memcache->getServerStatus(’memcache_host’, 11211);

$memcache = memcache_connect(’memcache_host’, 11211);

echo memcache_get_server_status($memcache, ’memcache_host’, 11211);

?>

Memcache::getStats

array Memcache::getStats ([ string$type [, int $slabid [, int $limit ]]] )

说明:

返回服务器的一些运行统计信息。相同的函数是memcache_get_stats()

参数:

$type表示要求返回的类型:reset, malloc, maps, cachedump, slabs, items, sizes;

$slabid第一个参数设置为”cachedump”时使用的。

$limit第一个参数设置为”cachedump”时使用的。

Memcache::getVersion

string Memcache::getVersion ( void )

说明:

返回运行的Memcache的版本信息。相同函数memcache_get_version()

返回值:

成功返回服务器的版本信息,失败的时候返回false。

例子:

$memcache = new Memcache;

$memcache->connect('memcache_host', 11211);

echo$memcache->getVersion();

$memcache = memcache_connect('memcache_host', 11211);

echo memcache_get_version($memcache);

?>

Memcache::increment

int Memcache::increment ( string$key [, int $value ] )

对保存的某个key中的值进行加法操作

用法参考Memcache::decrement

Memcache::pconnect

bool Memcache::pconnect ( string$host [, int $port [, int $timeout ]] )

说明:

创建一个Memcache的持久连接对象

用法与Memcache::connect()相似,不同点地方是Memcache::pconnect是建立的持久连接。这个连接在脚本执行完或者Memcache::close()函数运行也不会被关闭。与它相同的函数是memcache_pconnect()

参数:

$host:指向memcached正在收听的链接的主机,这个参数会有另一种特殊的连接方式unix:///path/to/memcached.sock,即用unix的域名sockets,这种情况下,端口必须设置为0 $port:指向memcached正在收听的链接的端口,用unix的域名sockets的情况下,端口必须设置为0

$timeout:用于连接守护进程的秒数,当你改变默认的1秒的值的时候,你需要考虑一下,如果你的连接太慢的话,你可能会失去缓存的优势。

返回值:

如果成功则返回TRUE,失败则返回FALSE

$memcache_obj = memcache_pconnect('memcache_host', 11211);

$memcache_obj = new Memcache;

$memcache_obj->pconnect('memcache_host', 11211);

?>

Memcache::replace

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

说明:

对一个已有的key进行覆写操作。相同函数是memcache_replace()

参数:

$key :将要存储的键值。

$var:存储的值,字符型和整型会按原值保存,其他类型自动序列化以后保存。

$flag:是否用MEMCACHE_COMPRESSED来压缩存储的值,true表示压缩,false表示不压缩。

$expire:存储值的过期时间,如果为0表示不会过期,你可以用unix时间戳或者描述来表示从现在开始的时间,但是你在使用秒数表示的时候,不要超过2592000秒(表示30天)。

返回值:

如果成功则返回TRUE,失败则返回FALSE。如果$key值已经存在,则会返回FALSE。

$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

$memcache_obj->replace("test_key", "some variable", false, 30);

?>

Memcache::set

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

说明:

添加一个值,如果已经存在,则覆写。相同函数是memcache_set()

参数:

$key :将要存储的键值。

$var:存储的值,字符型和整型会按原值保存,其他类型自动序列化以后保存。

$flag:是否用MEMCACHE_COMPRESSED来压缩存储的值,true表示压缩,false表示不压缩。

$expire:存储值的过期时间,如果为0表示不会过期,你可以用unix时间戳或者描述来表示从现在开始的时间,但是你在使用秒数表示的时候,不要超过2592000秒(表示30天)。

返回值:

如果成功则返回TRUE,失败则返回FALSE。

例子:

$memcache_obj = new Memcache;

$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50); echo $memcache_obj->get('var_key');

Memcache::setCompressThreshold

bool Memcache::setCompressThreshold ( int $threshold [, float$min_savings ] )

说明:

对大于某一大小的数据进行压缩。相同的函数是memcache_set_compress_threshold()

参数:

setCompressThreshold方法有两个参数,第一个参数表示处理数据大小的临界点,第二个参数表示压缩的比例,默认为0.2。

返回值:

如果成功则返回TRUE,失败则返回FALSE。

例子:

$memcache_obj = new Memcache;

$memcache_obj->addServer('memcache_host', 11211);

$memcache_obj->setCompressThreshold(20000, 0.2);

$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_set_compress_threshold($memcache_obj, 20000, 0.2);

?>

Memcache::setServerParams

bool Memcache::setServerParams ( string$host [, int $port [, int $timeout [, int$retry_interval [, b ool $status [, callback$failure_callback ]]]]] )

说明:

在运行时修改服务器的参数。相同函数是memcache_set_server_params()。

参数:

$host服务器的地址

$port服务器端口

$timeout连接的持续时间

$retry_interval连接重试的间隔时间,默认为15,设置为-1表示不进行重试

$status控制服务器的在线状态

$failure_callback允许设置一个回掉函数来处理错误信息。

返回值:

如果成功则返回TRUE,失败则返回FALSE。

例子:

function _callback_memcache_failure($host, $port) {

print "memcache '$host:$port' failed";

}

$memcache = new Memcache;

// 离线模式增加一个服务器

$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);

// 把服务器设成在线

$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure ');

$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_ memcache_failure');

?>

51CTO学院-微信公众平台开发-PHP视频教程

微信公众平台开发-PHP视频教程 课程目标 1、了解微信公众平台的原理 2、根据微信公众平台所提供的开发接口来开发一个属于自己的微信 公众平台。3、开发中常用工具的使用。 适用人群 PHP爱好者,具有PHP基础及PHP面向对象相关知识的学员。 课程简介 1、微信公众平台开发者功能启用配置 2、基于新浪SAE平台开发微信公众平台 3、微信公众平台服务器及客户端交互 4、基于VPS开发微信公众平台 5、微信公众平台关注、取消关注等事件 6、微信公众平台文字、图片等消息 7、微信公众平台简单回复 8、微信公众平台机器人API 9、微信公众平台天气API 10、微信公众平台自定义菜单开发 11、微信公众平台微站开发 12、微信公众平台后台管理平台开发 备注:此课程在线服务器为Linux操作系统,开发方式为企业真实开发方式。 第一章课程介绍 1课时5分钟 1 课程介绍 [免费观看] 5分钟 本课程课程目标、课程要求及课程内容介绍。 第二章小试牛刀 4课时29分钟 2 微信公众平台介绍 [免费观看]

5分钟 介绍什么是微信公众平台,微信公众平台的分类,如何申请微信公众平台。 3 微信公众平台开发者接入 [免费观看] 10分钟 新浪SAE平台的申请,应用创建,具体使用,上传代码并进行开发者接入验证; 4 微信公众号默认消息回复 [免费观看] 7分钟 开发者中心配置,如何进行接入,开启微信默认回复。 5 微信公众号简单消息回复 [免费观看] 5分钟 对responseMsg()方法进行修改并完成简单消息回复功能! 第三章基于VPS开发微信公众平台 34课时5小时35分钟 6 VPS介绍 7分钟 什么是VPS,VPS的优点,如何购买VPS。 7 FTP工具filezilla介绍及使用 6分钟 什么是FTP,filezilla工具介绍及使用。 8

云计划

电子商务专题讲座课程论文题目:关于云 系部名称:经济管理系专业班级:营销101班 学生姓名:王丽敏学号:201004024108课程教师:王趁荣教师职称:副教授 2012年12月26日

云[1]是指停留大气层上的水滴或冰晶胶体的集合体。云是地球上庞大的水循环的有形的结果。太阳照在地球的表面,水蒸发形成水蒸气,一旦水汽过饱和,水分子就会聚集在空气中的微尘(凝结核)周围,由此产生的水滴或冰晶将阳光散射到各个方向,这就产生了云的外观。这就是在我们的生活中普遍见到的现象“云”。然而现在它却是其他的代名词,我要讲的包括阿里巴巴旗下的云计划、百度旗下的百度云以及云计算的形成和发展。 先讲一下阿里巴巴旗下的云计划,我第一次听到云计划是老师在课堂上讲阿里巴巴时提到的,当时很好奇,所以就开始慢慢了解关于云计划。我在淘宝开店时同时在阿里巴巴上注册了账号,因此可以直接进入云计划上面的生意经网站。在这之前先了解云计划的概念,发展历程以及计划。 首先,云计划的定义 云计划[2]是一个打造小企业商业智慧分享成长平台。它集合商业名家、专家学者和公众的力量,解决千万小企业的难题,助力小企业成长。由马云担任首席导师,携手由商业名家、专业机构、知名网商等组成的导师团,他们一起与小企业创业者和个人网商采取问答互动形式,进行线上交流。 第二,云计划由来 2010年5月14日,阿里巴巴店举办2010年全球股东大会。大会由阿里巴巴集团董事局主席马云及阿里巴巴公司CEO卫哲主持,吸引了包括摩根士丹利、摩根大通等国际知名投行前来。 在股东大会上,马云作为首期创业导师,启动了由他所倡导的小企业商业智慧分享平台——云计划,分享企业经营管理方面的经验和理念,帮助小企业们共同成长。 第三,“云计划”实践 2010年盛大在线推出了人才“云计划”战略。“云计划”战略由“找人计划”、“云梯计划”、“暖心计划”三大内容构成,涉及了从选人、用人到留人的管理人才三部曲。 第四,云计划的云计划 云计划是一个智慧分享的问答平台,小企业有资金、人才、管理、经营、资金等相关的问题,都可以在云计划平台上提问,云计划汇集了马云、卫哲、黄鸣、白云峰、查立等知名企业家导师,以及余庆、曾永良、柳金育、朱明、吴翔等实战经验丰富的导师,为小企业解答难题。汇聚和分享千万小企业的困

php开发主管的工作职责

php开发主管的工作职责 php开发主管需要负责与产品需求人员沟通,完成后台架构设计、数据库设计、业务抽象、组件封装等工作。以下是小编整理的php开发主管的工作职责。 php开发主管的工作职责1 职责: 1、熟悉软件开发流程; 2、负责与需求人员接口,熟悉项目的需求规划说明; 3、负责与开发组长接口,熟悉项目的开发计划,及项目的概要设计说明数据库设计;

4、按计划完成功能模块的功能设计、代码实现, 代码编写和单元测试,并提交测试人员进行功能测试; 5、根据项目要求,判断是否需要完成《详细设计说明书》的编写; 6、严格遵守相关开发工具的编码规范; 7、参与需求和设计讨论,对项目开发各个环节进行签字确认; 8、为前端技服人员提供技术支持,解决技服过程中遇到的相关问题; 9、提交相关年、月、日计划和总结; 10、维护电子商务网站及开发工作,维护ERP系统,System Network 管理 岗位要求: 1、计算机或相关专业本科以上学历; 2、精通PHP, 编程语言,具备良好的编程风格; 3、精通网络编程,能够进行多线程开发,有实时监控系统开发经验者优先 4、具备相关行业知识或实践经验;较强的客户服务意识;

5、具备项目开发和管理经验,能良好地掌握开发速度和质量; 6、有3年以上的软件开发经验; php开发主管的工作职责2 职责: 1、负责后端各系统的架构设计、开发、重构、优化; 2、参与制定后端技术中期、短期开发计划,并带领团队完成计划; 3、解决重要项目目中的关键技术难题; 4、负责技术方案设计及关键功能的开发; 5、负责PHP开发团队的培养工作。 任职要求: 1.本科及以上学历,计算机相关专业者优先 2.有3~5年以PHP为主的中型或大型互联网产品软件的开发及维护工作经验 3.熟悉一到两种常用PHP框架(laravel、CI、Zend Framework、ThinkPHP、Yaf等)

【黑马程序员】分布式缓存技术redis学习系列----深入理解Spring Redis的使用

【黑马程序员】分布式缓存技术redis学习系列----深入理解Spring Redis的使用 关于spring redis框架的使用,网上的例子很多很多。但是在自己最近一段时间的使用中,发现这些教程都是入门教程,包括很多的使用方法,与spring redis丰富的api大相径庭,真是浪费了这么优秀的一个框架。 Spring-data-redis为spring-data模块中对redis的支持部分,简称为“SDR”,提供了基于jedis 客户端API的高度封装以及与spring容器的整合,事实上jedis客户端已经足够简单和轻量级,而spring-data-redis反而具有“过度设计”的嫌疑。 jedis客户端在编程实施方面存在如下不足: 1) connection管理缺乏自动化,connection-pool的设计缺少必要的容器支持。 2) 数据操作需要关注“序列化”/“反序列化”,因为jedis的客户端API接受的数据类型为string 和byte,对结构化数据(json,xml,pojo)操作需要额外的支持。 3) 事务操作纯粹为硬编码 4) pub/sub功能,缺乏必要的设计模式支持,对于开发者而言需要关注的太多。 1. Redis使用场景 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

我们都知道,在日常的应用中,数据库瓶颈是最容易出现的。数据量太大和频繁的查询,由于磁盘IO 性能的局限性,导致项目的性能越来越低。 这时候,基于内存的缓存框架,就能解决我们很多问题。例如Memcache ,Redis 等。将一些频繁使用的数据放入缓存读取,大大降低了数据库的负担。提升了系统的性能。其实,对于hibernate 以及Mybatis 的二级缓存,是同样的道理。利用内存高速的读写速度,来解决硬盘的瓶颈。 2. 配置使用redis 项目的整体结构如下: 在applicationContext-dao.xml 中配置如下: [AppleScript] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 0

文本预览