0

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 个参数?

4

1 回答 1

2

从本质上讲,它允许您配置一个与CACHE_STORE您的SESSION_STORE.

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

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

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

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

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

于 2021-07-27T02:28:47.610 回答