memcache的时间设定怎么不行?BUG? [ 1.1 版本 ]
memcache的配置:
'cache'=>array(
'class'=>'system.caching.CMemCache',
'servers'=>array(
array('host'=>'127.0.0.1', 'port'=>11211, 'weight'=>100),
),
),
调用代码:
$key = 'people';
$value = json_encode(array('name'=>'balssl', 'age'=>'male'));
$expire = 10;
yii::app()->cache->set($key, $value);
问题:如果我参数中传入$expire,这个调用就失败了,
我看了一下framework\caching\CMemCache.php这个文件的时间是这么存的
protected function setValue($key,$value,$expire)
{
if($expire>0)
$expire+=time();
else
$expire=0;
return $this->useMemcached ? $this->_cache->set($key,$value,$expire) : $this->_cache->set($key,$value,0,$expire);
}
php手册里的是固定的时间30就代表30秒,这个时间是加了时间戳的。然后我的调用就出错了,不知道是哪的原因...
共 2 个回答
-
expire 当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个UNIX时间戳或 以秒为单位的整数(从当前算起的时间差)来说明此数据的过期时间,但是在后一种设置方式中,不能超过 2592000秒(30天)。
http://php.net/manual/zh/memcache.set.php
expire支持时间戳和不超过30天的过期时间(秒)
至于你的调用出错,最好给个错误堆栈信息..
茶叶末
注册时间:2015-09-08
最后登录:2015-11-20
在线时长:2小时38分
最后登录:2015-11-20
在线时长:2小时38分
- 粉丝1
- 金钱35
- 威望0
- 积分55