tp3
use Think\Cache\Driver\Redis;
$redis = new Redis();
//插入队列
for($i=0;$i<10;$i++){
$res = $redis->push('num',rand(1,1000));
//$res为第几位
dump($res);
}
//先进先出
//弹出队列
for($i=0;$i<10;$i++){
$res = $redis->pop('num');
//$res为值
dump($res);
}
//队列长度
$value= $redis->len('num');
dump($value);
/**
* 插入队列
* @param $k
* @param $value
* @return bool
* @author sunnier <xiaoyao_xiao@126.com>
*/
public function push($k,$value){
$value = (is_object($value) || is_array($value)) ? json_encode($value) : $value;
$result=$this->handler->lpush($this->options['prefix'].$k,$value);
if($result){
return $result;
}else{
return false;
}
}
/**
* 弹出队列
* @param $name
* @return array|mixed
* @author sunnier <xiaoyao_xiao@126.com>
*/
public function pop($name,$sendtimeout=0){
if(!$sendtimeout){
$timeout=$this->options['timeout'];
}else{
$timeout=0;
}
$keys=array($this->options['prefix'].$name);
$value = $this->handler->brPop($keys,0);
$jsonData = json_decode( $value[1], true );
return ($jsonData === NULL) ? $value[1]: $jsonData;
}
/**
* 获取队列长度
* @param $name
* @return int
* @author sunnier <xiaoyao_xiao@126.com>
*/
public function len($name){
return $this->handler->lLen($this->options['prefix'].$name);
}
/**
* 删除队列
* @param $name
* @return int
* @author sunnier <xiaoyao_xiao@126.com>
*/
public function del($name){
return $this->handler->del($this->options['prefix'].$name);
}