Laravel 会话管理:Redis 驱动配置
问题
在 Laravel 中,该如何配置来使用 Redis 存储会话数据 ?
回答
要在 Laravel 中使用 Redis 作为会话存储驱动,首先需要用 Composer 安装 predis/predis
扩展包:
$ composer require predis/predis
然后在 database
配置文件中配置 Redis 连接信息。
config\database.php
<?php
use Illuminate\Support\Str;
return [
// 省略
/*
|--------------------------------------------------------------------------
| Redis Databases
|--------------------------------------------------------------------------
|
| Redis is an open source, fast, and advanced key-value store that also
| provides a richer body of commands than a typical key-value system
| such as APC or Memcached. Laravel makes it easy to dig right in.
|
*/
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'predis'),
'prefix' => Str::slug(env('APP_NAME', 'laravel'), '_').'_database_',
],
'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),
],
],
];
可以看到 database
配置文件包含有 redis 相关配置,在 cache
项后新增个 session
配置项:
'session' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 2),
],
然后,修改会话配置文件(位于 config/session.php
文件中)。
修改 driver
配置项:
'driver' => env('SESSION_DRIVER', 'file'),
将默认驱动 file
修改成 redis
:
'driver' => env('SESSION_DRIVER', 'redis'),
修改 connection
配置项:
'connection' => env('SESSION_CONNECTION', 'session'),
这样,我们就完成了使用 Redis 存储会话数据的配置工作了。
推荐文章: