PHP学习:YII框架中使用memcache的方法详解

介绍《PHP学习:YII框架中使用memcache的方法详解》开发教程,希望对您有用。

《PHP学习:YII框架中使用memcache的方法详解》要点:
本文介绍了PHP学习:YII框架中使用memcache的方法详解,希望对您有用。如果有疑问,可以联系我们。

PHP实例本文实例讲述了YII框架中使用memcache的方法.分享给大家供大家参考,具体如下:

PHP实例yii中可以很方便的使用memcache

PHP实例一.配置

PHP实例在main.php的components中加入cache配置

PHP实例
array(
  'components'=>array(
    'cache'=>array(
      'class'=>'CMemCache','servers'=>array(
        array(
          'host'=>'server1','port'=>11211,'weight'=>60,),array(
          'host'=>'server2','weight'=>40,)

PHP实例说明:

PHP实例1)class指明所有缓存类,CMemCache即为memcache
2) 当要使用多个cache轮询时,可以给每个cache配权重(weight).如果只有一个cache,不加这个配置就可以了.

PHP实例二.使用

PHP实例调用memcache的方法也很简单

PHP实例
$key = 'people';
$value = json_encode(array('name'=>'ball','age'=>'male'));
$expire = 10;
yii::app()->cache->set($key,$value,$expire);
Yii::app()->cache->get($key);
Yii::app()->cache->delete($key);

PHP实例更多api请参阅yii手册CMemCache部分.

PHP实例三.问题

PHP实例当你统一使用yii的扩展对memcache进行存取时,不会有什么问题.但现实中会有这么一种情况:你在使用yii开发后台,但前台的同学并未用yii,而是使用了原生的memcache api对数据进行操作.这时会遇到一些问题.

PHP实例如上文二中的例子,你会发现,如果使用原生的memcache api,Memcache::get,用people作key是取不到值的!

PHP实例原因是,yii的set对key和value都做了处理.默认情况下,对key加前缀并做md5变换,对value进行serialize().这就难怪使用Memcache::get(‘people’)取不到值了.

PHP实例解决:

PHP实例简单的方法,可以通过配置,让yii的memcache扩展不进行额外的”小动作”.

PHP实例
'cache' => array(
  'class' => 'system.caching.CMemCache','servers' => array( array('host' => '127.0.0.1','port' => 11211)),'keyPrefix' => '','hashKey' => false,'serializer' => false)

PHP实例其中:

PHP实例keyPrefix:key的前缀,默认用CApplication::getId()方法生成.
hashKey:对key进行hash操作,默认md5
serializer:value的序列化方法,默认serialize

PHP实例将这些都置空,扩展的行为就同原生Memcache一致了.

PHP实例四.更多memcache方法调用

PHP实例yii的扩展中,只有memcache的最常用操作,并没有类似原生memcache的decrement和increment等操作.如果想要作用这些方法怎么办呢?可以使用扩展中的getMemCache方法获得原生memcache对像,然后就可以使用原生方法了.

PHP实例
$mem = Yii::app()->cache->getMemCache();
$res = $mem->decrement($key);

PHP实例使用原生方法时,最好设置上文(三)中提到的配置,不然同时使用yii的扩展方法和memcache的原生方法会带来麻烦.

PHP实例更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

PHP实例希望本文所述对大家基于Yii框架的PHP程序设计有所帮助.

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部