1.laravel中使用redis首先需要你通过 Composer 安装 predis/predis 包:
composer require predis/predis
2.配置
redis的配置文件是: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' => 0,
],
],
另外一个地方是.env文件中进行设置
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
使用之前要引入redis
use Illuminate\Support\Facades\Redis;//redis是门面类中的类文件
3.控制器中代码
<?php
namespace app\Http\Controllers;
use App\Http\Controllers\Controller;
//使用redis之前需要引入我们的redis类
use Illuminate\Support\Facades\Redis;
class Redis1Controller extends Controller
{
public function test()
{
//使用字符串操作
//set存数据 创建一个key并设置value
Redis::set('names','abcd');
//setex存数据 创建一个key并设置value和失效时间
Redis::setex("names",5,'abcdefg');
//get命令用于获取指定key的值 如果key不存在,返回null
//如果key存储的值不是字符串类型会返回一个错误
var_dump(Redis::get('names'));
//3.del删除 成功删除 返回1 失败返回0
var_dump(Redis::del('names'));
//mset存储多个key对应的value
$arr = array(
'name'=>'marry',
'age'=>18,
'address'=>'中国北京',
);
Redis::mset($arr);
var_dump(Redis::mget(array_keys($arr)));
//获取缓存时间
var_dump(Redis::ttl('names'));//输出结果 5
//strlen 获取指定key储存的字符串值的长度
var_dump(Redis::strlen("names"));
var_dump(Redis::exists('names'));//返回1表示是key存在的,返回0表示key是不存在的
//redis中字符串截取 第一到第三位字符
echo Redis::substr("names",0,2);//输出结果是 abc
// 根据键名模糊搜索
var_dump(Redis::keys('a*'));//模糊查询出所有下标中a开头
// 输出结果:array(2) { [0]=> string(7) "address" [1]=> string(3) "age" }
//队列操作
//rpush/rpushx有序列表操作,从队列后插入元素;lpush/lpushx和rpush/rpushx的区别
//是插入到队列的头部,同上,'x'含义是只对已存在的key进行操作
var_dump(Redis::rpush('fooList', 'bar1')); // 返回列表长度 1
var_dump(Redis::lpush('fooList', 'bar2')); // 返回列表长度 2
var_dump(Redis::rpushx('fooList', 'bar3')); // 返回 3, rpushx只对已存在的队列做添加,否则返回 0
var_dump(Redis::llen('fooList'));
//lrange 返回队列中一个区间的元素
var_dump(Redis::lrange ('fooList', 0, 1)); // 返回数组包含第 0 个至第 1 个, 共2个元素
var_dump(Redis::lrange ('fooList', 0, -1)); //返回第0个至倒数第一个, 相当于返回所有元素
//lindex 返回指定顺序位置的 list 元素
var_dump(Redis::lindex('fooList', 10)); // 返回'bar1
//lset 修改队列中指定位置的value
var_dump(Redis::lset('fooList', 1, '123')); // 修改位置 1 的元素, 返回 true
}
}