Laravel 8 配置“SESSION_STORE”和“SESSION_DRIVER”

问题描述

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_STORESESSION_STORE 是 Redis 存储的同一个实例,则您不能在不清除这两个存储的情况下运行 php artisan cache:clear。寻找您想要清除的所有加密缓存密钥将非常困难且耗时。

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...