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
	}
}

Logo

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

更多推荐