【问题标题】:Laravel 8 config "SESSION_STORE" and ''SESSION_DRIVER"Laravel 8 配置“SESSION_STORE”和“SESSION_DRIVER”
【发布时间】:2021-10-02 20:51:11
【问题描述】:

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


    【解决方案1】:

    本质上,它允许您从SESSION_STORE 中配置一个单独的CACHE_STORE

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

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

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

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

    这是为什么有人会使用CACHE_STORESESSION_STORE 的示例,每个都可以指向您在config/database.php 中配置的单独的Redis 数据库/实例。

    【讨论】:

    • 谢谢,但我认为您回答的问题有误。你的回答对CACHE_STORE vs SESSION_STORE 很好,但问题是关于“SESSION_STORE” vs ''SESSION_DRIVER"
    • 你没有得到它。如果您在配置中创建了第二个 Redis 实例,它将不再命名为 Redis,但可能是 Redis-2,那么您仍将使用相同的 Redis 驱动程序,但存储现在将是 redis-2。
    • 谢谢你,Azeame。您的评论是有道理的,但您的回答仍然无关紧要。也许您可以对 redis-2 提出更多详细信息,因为我仍然感到困惑。我知道即使我有一个 redis-2 实例,我仍然会在 config/database.php 中使用它来为连接命名,然后我将在 config\session.php 中使用此连接来设置driver。为什么我需要store
    猜你喜欢
    • 1970-01-01
    • 2016-12-25
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多