问题描述
Laravel 8 有配置文件 config\session.PHP
这个文件有2个参数要存储
'driver' => env('SESSION_DRIVER','file'),
和
'store' => env('SESSION_STORE',null)
两者都可以是"apc"
、"dynamodb"
、"memcached"
、"redis"
我看到的唯一区别是 'driver' 也可以是 "file"
、"cookie"
、"database"
、"array"
请告诉我有什么区别,为什么我们有 2 个参数?
解决方法
本质上,它允许您从您的 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 数据库/实例。