php yii memcached,系列之四:yii2 下使用memcached(非memcache)

php 的memcache 扩展有 memcache 和 memcached 两个

这里就不详细介绍这两个扩展的具体区别了,网上介绍很多

不过在使用过程中还是出现了一点点问题

其实yii2是支持两个扩展的,但是yii2还无法很智能的区别你用的是 memcache 或者 memcached

当时在SiteController.php 文件下做测试

先不适用YII2 的组件试一试

...

$mc = new \Memcached();

$mc->addServer("localhost", 11211);

//$mc->set("foo", "Hello!");

$val = $mc->get('foo');

var_dump($val);

...

能正常打印出结果

再用yii2 的组件

$cache = Yii::$app->getCache() ;

$cache->add('name','zhangsan');

出现这个结果这个结果

已经安装了memcached 扩展为何还提示没安装,这个真搞不明白?

之后再回过头去看源码:MemCache.php

...

*MemCache supports both [memcache](http://pecl.php.net/package/memcache) and

*[memcached](http://pecl.php.net/package/memcached). By setting [[useMemcached]] to be true or false,

*one can let MemCache to use either memcached or memcache, respectively.

...

说明需要配置属性 [[useMemcached]] true:memcached , false:memcache

所以我没配置这个属性,useMemcached 为 false,所以Yii2 以为我使用的是 memcache

问题解决:

main-local.php

...

'cache' => [

'class' => 'yii\caching\MemCache',

'servers' => [

[

'host' => 'localhost',

'port' => 11211,

'weight' => 100,

],

[

'host' => 'localhost',

'port' => 11211,

'weight' => 50,

],

],

'useMemcached' => true ,

],

...

在此刷新site页面,没有错误提示了。

终端:

[root@localhost modules]# telnet 127.0.0.1 11211

get name

VALUE name 0 31

a:2:{i:0;s:8:"zhangsan";i:1;N;}

END

一切正常,yii2 可以使用memcached

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值