1.首先创建RedisDb控制器
php think make:controller RedisDb // 命令行创建
2.方法封装
<?php
namespace App\Common;
use Illuminate\Support\Facades\Redis;
use Illuminate\Http\Request;
/**
* redis访问基础类
*/
class RedisDb{
protected $_Redis_DB;
protected $_maxtime;
/**
* 建立连接
*/
public function getConnect()
{
return $this->_Redis_DB;
}
/**
* increment
*/
public function incr($key)
{
$v = $this->_Redis_DB = Redis::incr($key);
$this->_Redis_DB = Redis::expire($key, 100);
return $v;
}
/**
* 如果键不存在就创建
*/
public function setnx($key, $value=1)
{
$v = $this->_Redis_DB = Redis::setnx($key, $value);
return $v;
}
/**
* 给键设置过期时间
*/
public function expire($key, $expire=100)
{
$this->_Redis_DB = Redis::expire($key, $expire);
}
/**
* 根据key获取缓存,如果缓存为json会被解析为数组
*/
public function get($key) {//获取缓存
if($this->chkkey($key)){
$packed = $this->_Redis_DB = Redis::get($key);
return $this->unpack_value($packed);
}
return FALSE;
}
/**
* 根据key存储缓存,缓存为数组或对象会先进行json_encode再存储
*/
public function set($key, $data, $expire = 0) {
$value = $this->pack_value($data);
$maxexpire=$this->_maxtime;
if ($expire == 0) {
$ret = $this->_Redis_DB = Redis::setex($key, $maxexpire, $value);
} else {
$ret = $this->_Redis_DB = Redis::setex($key, $expire, $value);
}
return $ret;
}
/**
* 获取string类缓存
*/
public function getString($key)
{
$string = $this->_Redis_DB = Redis::get($key);
return $string;
}
/**
* 存储string类缓存
*/
public function setString($key, $data, $expire = 0) {
$maxexpire=$this->_maxtime;
if ($expire == 0) {
$ret = $this->_Redis_DB = Redis::setex($key, $maxexpire, $data);
} else {
$ret = $this->_Redis_DB = Redis::setex($key, $expire, $d