1.打开tp5官方手册,在缓存下面找到使用多个缓存类型

粘贴以下代码到tp框架config下面的缓存设置下

 

// 切换到redis操作
Cache::store('redis')->set('name','value');

//获取redis
Cache::store('redis')->get('rename');

//实现redis 消息队列

在 /thinkphp/library/think/cache/driver/Redis.php 文件里面封装

//向队列添加数据
public function lPush($key, $value)
{
    return $this->handler->lPush($key, $value);
}
//向队列里面取数据
public function lPop($key)
{
     return $this->handler->lPop($key);
}

在控制器里面调用

//存储
Cache::store('redis')->handler()->lPush('k','v');
//获取
Cache::store('redis')->handler()->lPop('k');

稍微复杂点

/**
     * 在list的左边添加值为$value的元素
     * @access public
     * @param $key 索引
     * @param $value 值
     * @return int
     */
    public function lPush($key,$value){
        return $this->handler->lPush($key,$value);
    }

    /**
     * 在list的右边取值值为$value的元素
     * @access public
     * @param $key 索引
     * @return int
     */
    public function lPop($key){
        return $this->handler->lPop($key);
    }

    /**
     * 在list去除重复值
     * @access public
     * @param $key 索引
     * @return int
     */
    public function lrem($key1,$key2){
        return $this->handler->lrem ($key1,$key2);
    }


    /**
     * 在list判断
     * @access public
     * @param $key 索引
     * @return int
     */
    public function lLen($key){
        return $this->handler->lLen ($key);
    }

在控制器使用

这里是方法里面代码:
$list=array(
    '1'=>'a',
    '2'=>'b',
    '3'=>'c'
);
$redis=new Redis();
$keys='test1';
$total=$redis->lLen($keys);//返回键名test1长度
if($total == 0){
    foreach ($list as $key => $val){
        $redis->lPush($keys,$val);//把数组的值写入键名test1的队列中
    }
}

//这里是取出了,如果在其他地方取出,把下面这一段删掉
$data=$redis->lPop($keys);//取出键名test1的队列中第一个数据
if (!$data) {
    return '已执行完毕';
}
$redis->lrem($keys,$data);//去重

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐