[关闭]
@a5635268 2015-10-14T11:23:40.000000Z 字数 1678 阅读 1100

【memcache缓存专题(3)】PHP-memcache扩展的安装以及使用

Memcache


安装PHP-memcache扩展和安装其他PHP扩展的步骤是一样的。

安装

step 1:搜索下载扩展 http://pecl.php.net/package/memcache

step 2:

  1. gzip -d memcache-2.2.6.tgz
  2. tar xvf memcache-2.2.6.tar
  3. cd memcache-2.2.6
  4. /usr/local/php/bin/phpize #可以先locate查找一下php所在的路径
  5. ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
  6. make && make install

step end:

  1. # 通过step2的安装获得以下扩展路径
  2. Installing shared extensions: /usr/lib/php/modules/
  3. # 写进PHP.INI中
  4. extension_dir = "/usr/lib/php/modules/"
  5. extension=memcache.so
  6. #或者直接

PHP操作

该扩展是官方扩展,所以在手册里面有以下方法的,但我们一般都不会直接使用,都要进行封装后使用,方面后续的扩展,比如一些函数回调处理

  1. <?php
  2. #初始化
  3. $mem = new Memcache();
  4. $mem -> connect("127.0.0.1",11211);
  5. ##### 添加 #####
  6. $mem -> add('name','zxg',0,1000);
  7. /*
  8. bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )
  9. $flag:为0时不压缩,为MEMCACHE_COMPRESSED标记对数据进行压缩(使用zlib)。
  10. */
  11. $mem -> add('int',888,0,1000);
  12. $mem -> add('bool',true,0,1000);
  13. /*
  14. 如果放入的是布尔值,当为false的时候,get出来是空字符串,当为true的时候get出来为1
  15. */
  16. $mem -> add('arr',array('zz','xx','gg'),MEMCACHE_COMPRESSED,1000);
  17. /*
  18. 数组比较大的时候可以考虑一下用压缩
  19. */
  20. /*
  21. 1.另外,在放入对象的时候,要注意:放入或取出时,这个定义对象的类必须要被加载,才能完全的取出;
  22. 2.资源类型放不进去;
  23. 3.在实际开发使用中,一般存入的key的名称都是唯一的id号;
  24. */
  25. ##### 更新 #####
  26. $mem -> set('arr','这是一个数组',0,600);
  27. /*
  28. 同add的参数一样,在有这个name时为更新,没有这个name时为增加
  29. */
  30. $mem -> replace('arr','new arr',0,80);
  31. /*
  32. 同set的参数一样,不过必须要有name值时才有效
  33. */
  34. $mem -> increment('int',2); //增加2;没有第二参数的话默认为1;
  35. $mem -> decrement('int'); //减少,同上
  36. ##### 删除 #####
  37. $mem -> delete('int');
  38. /*
  39. bool Memcache::delete ( string $key [, int $timeout = 0 ] )
  40. 如果参数timeout指定,该元素会在timeout秒后失效
  41. */
  42. $mem -> flush();//清空
  43. ##### 读取 #####
  44. $result = $mem -> get('int');
  45. /*
  46. string Memcache::get ( string $key [, int &$flags ] ) 获取不到就返回false;
  47. array Memcache::get ( array $keys [, array &$flags ] )
  48. */
  49. $result = $mem -> get(array('name','int','bool','arr')); //分别取多个的key的值
  50. echo '<pre>';
  51. print_r($result);
  52. echo '</pre>';
  53. exit;
  54. ?>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注