【Laravel】关于Laravel8的session与Redis连接的问题

1. 安装 predis 包,也可以选择其他包,如 phpredis。

composer require predis/predis

2. 配置 config\database.php 文件,添加 session 连接配置。

'redis' => [

        'client' => env('REDIS_CLIENT', 'predis'), // <-- 默认为 phpreids,改为 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'),
        ],

        'cache' => [
            '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_CACHE_DB', '1'),
        ],

        // 添加如下设置,可按项目需求更改:
        'session' => [
            '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_SESSION_DB', '2'),
        ],

    ],

    如果出现 Class 'Redis' not found 错误,请将上述配置中客户端改为 predis

// 更改前默认配置为 phpredis
'client' => env('REDIS_CLIENT', 'phpredis'),

// 更改为 predis
'client' => env('REDIS_CLIENT', 'predis'),

3. 配置 config\session.php 文件

    driver 和 connection 配置

// 更改前
'connection' => env('SESSION_CONNECTION', 'null'),

// 更改后 将 null 改为 session
'connection' => env('SESSION_CONNECTION', 'session'),

/* -------------------------------------------------- */

// 更改前
'driver' => env('SESSION_DRIVER', 'file'),

// 更改后 将 file 改为 redis
'driver' => env('SESSION_DRIVER', 'redis'),

4. 更改 .env 配置文件设置

SESSION_DRIVER=redis

REDIS_SESSION_DB=2 // 这里的 2 可以替换成你的项目的数据库编号,Redis有16个库。

5. 如果出现 Session store not set on request. 错误的解决办法

将 \Illuminate\Session\Middleware\StartSession::class, 添加进 app\Http\Kernel.php 文件的

全局中间件: protected $middleware

或者添加到 web 中间件: protected $middlewareGroups

添加到全局中间件可以不用做其他操作,如果添加到 web 中间件,需要在 Route 里添加中间件组才可消除错误。

例: 

Route::middleware('web')->get('/test', function (Request $request) {
    // 你的代码段
});

完成!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值