一、安装redis
由于本人使用的是宝塔,直接可以安装redis,这里比较简单。
二、composer安装predis
Laravel 项目还没有安装 Laravel 的 Redis 组件:
composer require predis/predis
三、配置 .env
文件
需要在 .env
文件中进行一些配置。首先,设置 SESSION_DRIVER
为 redis:
SESSION_DRIVER=redis
然后,确保 Redis 连接信息是正确的。这些设置通常也在 .env
文件中配置:
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
如果有设置密码,自己补充上:
DB_PASSWORD=
四、配置 config/database.php
虽然对于默认的 Redis 连接配置来说不是必需的,但可能需要根据需求调整或确认 config/database.php
文件中的 Redis 设置部分:
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
],
'default' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '0'),
],
// 其他连接...
],
五、Laravel 的 Redis Facade
如果Laravel 项目已经配置好了 Redis(在 config/database.php
中),并且你只是想简单地使用 Predis 而不是 Laravel 默认的 PhpRedis,你可以直接使用 Laravel 的 Redis Facade。Laravel 默认支持 Predis,只需要在 .env
文件中指定:
REDIS_CLIENT=predis
这样,你就可以在任何地方使用 Laravel 的 Redis Facade 来进行 Redis 操作,无需担心底层使用的是 Predis 还是 PhpRedis:
use Illuminate\Support\Facades\Redis;
Redis::set('name', 'Redis User');
echo Redis::get('name');
六、laravel中关于redis基本操作
设置键值对:
// 设置键 "key" 的值为 "value"
Redis::set('key', 'value');
// 设置带有过期时间的键(例如,过期时间为 5 分钟)
Redis::setex('temporary_key', 5 * 60, 'value');
获取键的值:
// 获取键 "key" 的值
$value = Redis::get('key');
删除键:
// 删除一个键
Redis::del('key');
// 删除多个键
Redis::del(['key1', 'key2', 'key3']);
判断键是否存在:
// 检查键 "key" 是否存在
$exists = Redis::exists('key'); // 返回 1(存在)或 0(不存在)
增加数字键的值
// 将键 "counter" 的值增加 1
Redis::incr('counter');
// 将键 "counter" 的值增加指定的数量
Redis::incrby('counter', 10);
减少数字键的值:
// 将键 "counter" 的值减少 1
Redis::decr('counter');
// 将键 "counter" 的值减少指定的数量
Redis::decrby('counter', 10);
列表操作:
// 在列表末尾添加一个或多个值
Redis::rpush('list', 'value1');
Redis::rpush('list', ['value2', 'value3']);
// 移除并返回列表的第一个元素
$value = Redis::lpop('list');
发布订阅:
// 发布消息到频道
Redis::publish('channel', 'message');