Laravel 8 配置“SESSION_STORE”和“SESSION_DRIVER”

问题描述 投票:0回答:2

Laravel 8 有配置文件

config\session.php

这个文件有2个参数要存储

'driver' => env('SESSION_DRIVER', 'file'),

'store' => env('SESSION_STORE', null)

两者都可以是

"apc"
"dynamodb"
"memcached"
"redis"

我看到的唯一区别是“司机”也可以是

"file"
"cookie"
"database"
"array"

请告诉我有什么区别以及为什么我们有 2 个参数?

laravel redis laravel-session
2个回答
3
投票

本质上,它允许您从

CACHE_STORE
中配置单独的
SESSION_STORE

假设您有 APIv1,您在 Redis 中使用加密的缓存密钥来缓存查询,同时也在 Redis 中缓存您的用户会话。

假设您想要推出 APIv2 并希望清除所有缓存的查询,但不想注销所有用户。

如果您的

CACHE_STORE
SESSION_STORE
是 Redis 存储的同一个实例,则在不清除这两个存储的情况下无法运行
php artisan cache:clear
。寻找您想要清除的所有加密缓存密钥将非常困难且耗时。

但是,如果您在单独的 Redis 存储上设置用户会话,则可以放心运行它。

这是为什么有人会使用

CACHE_STORE
SESSION_STORE
的示例,其中每个都可以指向您在
config/database.php
中配置的单独的 Redis 数据库/实例。


0
投票

有点晚了,但我今天注意到了这一点。 看起来 Laravel 在会话中使用缓存,因此 SESSION_STORE 就是这个缓存存储。如果您转到缓存配置文件,您将看到这些存储。所以就是定义一个特定的缓存存储的缓存配置文件。这独立于 SESSION_DRIVER 和 SESSION_CONNECTION(数据库配置文件连接)

© www.soinside.com 2019 - 2024. All rights reserved.