在thinkphp官方手册里找了半天,没有发现redis队列的使用介绍,太坑爹了吧~
网上看了些方法,都麻烦的很,还是自己研究一下吧,自己动手丰衣足食嘛~
于是扒了一遍TP5中封装的缓存类Cache.php (/thinkphp/library/Cache.php)
手册中介绍的方法都封装在这里
里面没有redis队列操作的方法,自己添加一下吧,按照上面的格式写了一下,
注意: self::init()->handler() 一定要加,直接返回redis实例对象
/**
* redis 获取队列长度
* @access public
* @param string $name 队列名
* @return mixed
* User: HeGuoxiang
* Date: 2019/1/21
*/
public static function Llen($name = null)
{
return self::init()->handler()->Llen($name);
}
/**
* redis 入队操作
* @access public
* @param string $name 队列名
* @param string|array $data 队列数据
* @return mixed
* User: HeGuoxiang
* Date: 2019/1/21
*/
public static function lpush($name, $data = null)
{
return self::init()->handler()->lpush($name, $data);
}
/**
* redis 出队操作
* @access public
* @param string $name 队列名
* @return mixed
* User: HeGuoxiang
* Date: 2019/1/21
*/
public static function lpop($name = null)
{
return self::init()->handler()->lpop($name);
}
大功告成!
可以直接在控制器中使用了,
$len = Cache::Llen('luckCount_'.$site_id.$key);
if($len==0){
Cache::lposh('luckCount_'.$site_id.$key,1);
}
帮助到大家的,关注一下哦~