我很困惑为什么在没有会话的情况下可以基于documentation创建用于会话的数据库表的先决条件(db table)。
有人可以解释我,
session(['key' => 'value']);
不使用表,为什么我们需要为会话创建数据库表(基于documentation)?有一个叫做Redis
的东西。目的是什么?以及如何使用(我已经installed)?
user_id
,ip_address
,user_agent
,payload
,last_activity
等字段的用途是什么?这些有什么用?
答案 0 :(得分:1)
数据库和Redis只是用于存储会话的驱动程序。默认情况下,laravel使用file
驱动程序,这意味着您仍然可以使用session(['key' => 'value']);
并将其存储在文件中。
如果您选择使用数据库,则需要创建表,Laravel随后将这些表用于存储这些值。
Redis也是一个完全独立的驱动程序,这是它的Wiki:
Redis 是一个内存中数据结构项目,实现了具有可选持久性的分布式内存中键值数据库。
因此,总而言之,您应该选择要使用哪个驱动程序来满足您的需求。
答案 1 :(得分:1)
我从没在数据库中使用过session
,所以我不能回答您所有的问题。我认为每个人都会以不同的方式或用法来查看/使用此表。
session
。默认情况下,它使用file
存储。使用数据库表可以管理用户会话,(我想)在服务器之间共享用户会话... Redis
就像一个数据库,但是复杂度较低。它只是key => value
的堆栈,所有内容都存储在内存中。它使您的应用程序可以非常快速地存储和检索数据。您还需要安装redis-server
并在生产环境中启动deamon
或在开发过程中启动worker
。答案 2 :(得分:1)
除最后一个答案外,所有答案都在文档中。
答案 3 :(得分:1)
我们需要将会话驱动程序更改为数据库或Redis。
它基于我们的要求,就像我正在使用Heroku服务器进行部署,并且每隔30分钟不活动之后,Heroku的免费dyno睡眠。而且Heroku不允许我们存储本地文件,并且它每天自动刷新一次构建。因此,在这种情况下,我们不能将本地文件驱动程序用于会话,而必须将会话驱动程序更改为数据库或Redis。
我将Redis用作应用程序的会话驱动程序。