在一个项目中添加了memcache层,但由于数据库本来压力就不大,数据量很小,所以性能改善不是特别明显,因此学习并应用下来记录一下方便以后自己使用。这里我只应用了直接调用对应api函数的方法,另外一种方法是创建对象来连接memcache,具体是$mem=new Memcache,然后再调用对象里的方法来操作要存储的item。

本次使用环境为php 5.4.17,

yum安装的驱动:

php-pecl-memcache-3.0.8-1.el5.remi

代码如下:

$MEMCACHE["host"]="10.54.178.202";$MEMCACHE["port"]="11211";$MEMCACHE["timeout"]="5";functioncache_set($key,$value,$expire=86400,$flag=MEMCACHE_COMPRESSED,$cache_host=NULL){if(empty($cache_host)){global$MEMCACHE;$cache_host=$MEMCACHE["host"];$cache_port=$MEMCACHE["port"];$cache_timeout=$MEMCACHE["timeout"];}$memcache=memcache_connect($cache_host,$cache_port,$cache_timeout);$memcache->set($key,$value,$flag,$expire);memcache_close($memcache);}functioncache_get($key,$cache_host=null){if(empty($cache_host)){global$MEMCACHE;$cache_host=$MEMCACHE["host"];$cache_port=$MEMCACHE["port"];$cache_timeout=$MEMCACHE["timeout"];}$memcache=memcache_connect($cache_host,$cache_port,$cache_timeout);$result=$memcache->get($key);memcache_close($memcache);return$result;}functioncache_clear($key,$cache_host=null){if(empty($cache_host)){global$MEMCACHE;$cache_host=$MEMCACHE["host"];$cache_port=$MEMCACHE["port"];$cache_timeout=$MEMCACHE["timeout"];}$memcache=memcache_connect($cache_host,$cache_port,$cache_timeout);$memcache->delete($key,0);memcache_close($memcache);}