更多内容请查看博主github wiki主页 https://github.com/LeroiLiu/wiki
安装
(如果你一直跟随着本教程的话,其实你已经安装了Redis拓展包参考[安装laravel Dingo],可以跳过本安装教程)
如果没有安装,这里提供两个方法供使用:
-
在
/home/wwwroot/odin.com/odin/composer.json
中require
添加"predis/predis": "^1.1"
然后:composer update
配置
基本使用的可以情况下可用如下配置(/home/wwwroot/odin.com/odin/config/database.php):
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
],
'cache' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 1),
],
],
当然,这里是基础配置,如果在.env中定义了变量,就要在.env中修改配置:
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
当然,更高级的使用,就请参考官方文档吧,这里只提供一个可以快速入门的通路。
使用测试
/**
* @Author: leroi
* @Date: 2019-01-08 13:51:49
* @Last Modified by: leroi
* @Last Modified time: 2019-01-09 17:17:27
*/
namespace App\Http\Controllers\api\lora;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redis;
class TestController extends Controller
{
public function index(){
Redis::set('name', 'Leroi');
$name = Redis::get('name');
var_dump($name);
}
}
//结果:string(6) "Leroi"
好了,接下来我们来测试试用一下Predis的基本方法吧!!
常用方法
操作哈希
//设置值
Redis::command('hset', ['table1', 'use1', 'token1']);
//redis读取哈希
Redis::command('hget', ['table1', 'use1']);
//检测是否存在key
Redis::command('hexists', ['table1', 'use2']);
//设置时间限制
Redis::expire('table1',5);
//laravel 发布订阅
Redis::command('publish', ['key', json_encode(['foo' => 'bar'])]);
Redis::subscribe(['test-channel'], function($message) {
echo $message;
});
操作字符串
//设置指定 key 的值
Redis::SET('name','Leroi');
//获取指定key的值
$name = Redis::GET('name'); //输出Leroi
//返回 key 所储存的字符串值的长度
Redis::STRLEN('name');
//将 key 中储存的数字值增一
Redis::INCR('number');
//将 key 中储存的数字值减一
Redis::DECR('number');
操作列表
//将一个值或多个值插入到列表头部(在列表左侧插入)
Redis::LPUSH('testList','list_left');
//在列表中添加一个值或多个值(在列表右侧插入)
Redis::RPUSH('testList','list_right');
//获取列表长度
Redis::LLEN('testList')
//获取列表指定范围内的元素
Redis::LRANGE('testList',0,-1); //获取列表全部元素
Redis::LRANGE('testList',0,1); //获取索引值0到1的元素
//移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
Redis::BLPOP('testList',10); //如果没有元素,会阻塞列表10秒钟,BRPOP同此
//通过索引获取列表中的元素(从列表表左侧开始计算,索引从0开始)
Redis::LPUSH('testList',1);
Redis::LPUSH('testList',2);
$two = Redis::LINDEX('testList',0);//输出$two为2
//在列表中某一元素前面或者后面插入新的元素
Redis::LPUSH('testList',1);
Redis::LPUSH('testList',2);
Redis::LINSERT('testList','AFTER',1,3);
$list = Redis::LRANGE('testList',0,-1);//$list 输出为:2 1 3
当然,这里并不可能将所有方法全部列出来,可以参考Redis 命令参考,这里有更为具体和详细的使用方法。
方法返回值可以查看菜鸟教程