通过前5篇相关文章的学习,相信朋友们对memcache有了一定的了解,准备工作已经就绪,下面我们就可以开始进行php下memcache的简单应用。
首先自然是开启memcached服务器了,如果你制作了memcached服务器的启动脚本,我们可以直接使用service memcached start来启动,如果没有的话,可以直接进入到memcached服务器的安装目录,找到bin文件夹下的memcached的文件,通过它来启动。
接着我们来新建一个php文件,第一步自然是实例化memcached客户端
<?php
$m1 = new Memcached; //写法一
$m2 = new Memcached(); //写法二
我们查找资料的时候会发现教程中启动memcached客户端的时候会有两种写法,哪种是正确的呢?其实两种写法都是正确的,如果new的时候不带括号,其实调用的就是类的无参构造函数,写法一算是写法二的一种简写形式吧,php是弱类型语言,不存在函数的重载操作,如果构造函数带参数,那么实例化的时候只有new ClassName(参数)一种格式,只有当构造函数是无参的时候才会出现上述两种写法,为了避免混淆,可以统一以写法二为标准。
第二步链接memcached服务器,使用memcached客户端链接memcached服务器跟使用memcache客户端链接有所不同,memcache客户端链接memcached服务器的方法有两种,面向对象和面向过程,而每种下面有分为connect和addserver两种方式,addserver是在memcache客户端2.0.0版本的时候加入的,之前的版本无法使用,关于memcache客户端链接方式这里不在详述。memcached客户端不同与memcache客户端,它是纯面向对象,因此我们无法使用过程话来链接memcached服务器,而且我们在memcached客户端类中也找不到connect方法,我们只能使用addServer来链接。
<?php
$m = new Memcached();
$m->addServer('localhost',11211);
第三步使用set和get。
<?php
$m = new Memcached();
$m->addServer('localhost',11211);
$m->set('test','this is a test',time()+300);
echo $m->get('test');
我们通过set方法就是把value存储在memcached的key下,通过get(key)来获取value。上述代码中把字符串"test"作为key,字符串"this is a test"作为value,并且设置了过期时间为5分钟,在5分钟内,我们可以通过get('test')来获取设置的值'this is a test'。
除了上述代码中提到的三个方法之外,memcached客户端还提供了很多其他的方法用来和memcached服务器进行交互,这里就不再一一讲解,有兴趣的朋友可以自行到这里进行查看。
注意事项:
1.memcached客户端和memcache客户端在链接memcached服务器的时候是有区别的,如果习惯了memcache客户端的操作切换到memcached客户端的时候一定要注意。
2.set方法中的value值是有大小限制的,最多1M,超过1M就会set失败,返回false。
3.set方法中的过期时间可以是时间戳或者是从现在算起的以秒为单位的数字,上文中代码就是以时间戳的格式设置过期时间的,如果使用数字来设置,例如$m->set('test','this is a test',300),那么需要注意的是,该值不能超过60×60×24×30(30天时间的秒数),如果大于该值,服务端将不再把它作为当前时间的偏移,而是作为时间戳来处理。