PHP的memcached管理接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP的memcached管理接口相关的知识,希望对你有一定的参考价值。

   Web系统中应用MemCache缓存技术,必须使用客户端API(php)进行访问,这样才能将用户请求的动态数据,缓存到memcached服务器中,来减少对数据库的访问压力。PHP中提供了用于内存缓存的过程式程序面向对象两种方便的应用接口。

 

1、  安装memcached扩展方式请自行百度

2、  面向对象接口的应用

  (1)、连接和关闭memcached服务器

 

  1. <?php
  2. //实例化Memcachele类的对象
  3. $mem =newMemcache;
  4. //通过 $mem中的connect()方法连接到指定位置的指定端口
  5. $mem -> connect("127.0.0.1",11211);
  6. //关闭对象(对常连接不起作用)
  7. $mem -> close();
  8. ?>
     (2)、连接memcached服务器以后,就可以添加一个要缓存的数据(add),或设置一个指定key的缓存变量内容(set),以及可以替换一个指定已存在      key的缓存变量(replace)。可以通过MemCache类对象中的add()、set()、replace()三个函数来完成,格式如下:
  1. boolMemcache::add (string $key , mixed $var [,int $flag [,int $expire ]]) //添加一个要缓存的数据
  2. boolMemcache::set(string $key , mixed $var [,int $flag [,int $expire ]]) //设置一个指定key的缓存变量内容
  3. boolMemcache::replace (string $key , mixed $var [,int $flag [,int $expire ]]) //替换一个指定已存在key的缓存变量内容
     这三个方法的语法格式相同,都需要4个参数:
     第一个参数$key:必选项,用于设置缓存数据的键,其长度不能超过250个字符;
     第二个参数$var:必选项,用于设置缓存的值,整形将直接存储,其他类型将被序列化存储,其最大值为1M;
     第三个参数$flag:可选项,即是否使用zlib压缩,当使用MEMCACHE_COMPRESSED时,数据很小时不会采用zlib压缩,只有数据到达一定大小才对数据进行zlib压缩;
     第四个参数$expire:当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个UNIX时间戳或 以秒为单位的整数(从当前算起的时间差)来说明此数据的过期时间,但是在后一种设置方式中,不能超过 2592000秒(30天)。    
  1. <?php
  2. //实例化Memcachele类的对象
  3. $mem =newMemcache;
  4. //通过 $mem中的connect()方法连接到指定位置的指定端口
  5. $mem -> connect("127.0.0.1",11211);
  6. //向本机服务器中添加一组数据
  7. $mem -> add("mystr","this is a memcache test",MEMCACHE_COMPRESSED,3600);
  8. //关闭对象(对常连接不起作用)
  9. $mem -> close();
  10. ?>
         (3)、从memcached服务器中获取和删除数据
      可以添加和修改缓存数据,当然也可以获取和删除memcached服务器中存在的缓存数据。格式如下所示:
  1. stringMemcache::get(string $key [,int&$flags ]) //获取一个key的变量缓存值
  2. array Memcache::get( array $keys [, array &$flags ]) //获取多个key的变量缓存多个值
        该方法有两种:一种是通过第一个必选参数,并使用一个字符串的key,从memcached服务器中返回缓存的指定key的变量内容,如果获取失败或该变量的值不存在,则返回FALSE;另一种是在第一个必选参数中使用一个数组,在数组中使用多个key,就可以获得每个key对应的多个值。如果传入的key的数组中的key都不存在,则返回的结果是一个空数组,反之则返回key与缓存值相关联的关联数组,关联数组的下标为每个key名。
  1. <?php
  2. //实例化Memcachele类的对象
  3. $mem =newMemcache;
  4. //通过 $mem中的connect()方法连接到指定位置的指定端口
  5. $mem -> connect("127.0.0.1",11211);
  6. //向本机服务器中添加一组数据
  7. $mem -> add("mystr1","this is a memcache test",MEMCACHE_COMPRESSED,3600);
  8. $mem -> add("mystr2","hello world",MEMCACHE_COMPRESSED,3600);
  9. $var1 = $mem ->get(‘mystr1‘);
  10. var_dump($var1);
  11. $var2 = $mem ->get(array(‘mystr1‘,‘mystr2‘));
  12. var_dump($var2);
  13. //关闭对象(对常连接不起作用)
  14. $mem -> close();
  15. ?>
        删除数据:
  1. boolMemcache::delete(string $key [,int $timeout =0])//通过key删除一个元素。 如果参数timeout指定,该元素会在timeout秒后失效。
  2. boolMemcache::flush (void)//立即使所有已经存在的元素失效。
 

 

 

 

 





以上是关于PHP的memcached管理接口的主要内容,如果未能解决你的问题,请参考以下文章

PhpMyAdmin是啥?免费的吗?

PHP开发APP接口

php使用memcached详解

php使用memcached详解

php-memcached详解

PHP对象与设计