欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

小蚂蚁学memcache笔记-php操作memcache(1)

程序员文章站 2022-04-24 19:07:26
...
准备工作

把php_memcache.dll文件拷贝到php的ext下。

特别说明:不同版本php所用的php_memcache.dll版本不同。

修改php.ini文件,加载php_memcache.dll(这个文件其实就是加载了一大堆的函数)

重启apache

php实际操作

$mem = new Memcache(); //实例化对象

$mem = connect('127.0.0.1',11211);

$mem -> add(键,值,是否压缩,生存时间);

$mem -> set(同上); //键如果存在就修改,不存在就添加

memcache可以保存字符串和数组、数字、对象

保存对象的时候会产生一个问题:在另外一个文件中取出对象的时候,有一个需要注意的地方。对应php5.2这个版本会提示错误,对php5.3这个版本会提示incomplete信息。这个错误和保存在$_SESSION中是一样的,解决方法也一样。

解决方法:在当前脚本在重新声明类定义(把类也拿过去)

添加 null 取出 null

添加 false 取出 ‘’

修改 $mem->replace(同添加);

删除 $mem->delete(键);

全部冲掉 flush

注意细节:在添加数据时,如果把expire(超时)设为0,表示永不过期。expire直接给秒数,则最大只能是30天,即30*3600*24.如果你希望保持时间超过30天,用时间戳表示,即 time()+天数*3600*24 。

放入资源,却出0,所以资源是不支持的。(注意)

在添加数组时,可以根据需要,进行序列化 serializa() 可以把对象和数组保存在磁盘中。

相对应的还有json化,也是同样可以变成字符串。区别在于:serializa()可以把数据的类型和大小一些信息同样的保存下来,主要用于数据的储存。json_encode()不保存数据类型等信息,主要是方便数据的传输。