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);//去重
|