【问题标题】:Laravel Session Vs Native PHP Session Performance DifferenceLaravel 会话与原生 PHP 会话性能差异
【发布时间】:2015-08-04 02:37:31
【问题描述】:

我正在构建一个 laravel 站点,我刚刚发现 laravel 会话不与本机 php 会话共享。

目前我没有看到任何性能差异,但此站点在完成后会获得大量流量。是否最好尽可能多地使用原生 PHP 东西,或者会话的 laravel 实现是否比 php 更有效?

【问题讨论】:

    标签: php session laravel


    【解决方案1】:

    如果您使用的是 Laravel 4.0,它使用原生 PHP 会话作为其 session driver by default,因此差异可以忽略不计。

    从 Laravel 4.1 开始,新的默认会话驱动程序称为 file,它将会话数据存储在磁盘上的文件中,根据their 4.1 release notes,他们的会话现在“更精简、更快”:

    改进的会话引擎

    在此版本中,我们还引入了一个全新的会话引擎。与路由改进类似,新的会话层更精简、更快。我们不再使用 Symfony(以及 PHP)的会话处理工具,而是使用更简单、更易于维护的自定义解决方案。


    或者,您可以使用 Redis 或 memcached 来处理会话 - Laravel has drivers for both out of the box (note: for anything new, you should use Redis rather than memcached)。如果您有大量会话数据(复杂的对象/数据,而不是存储的几个字符串或整数)和/或大量并发用户(10,000+),则可以考虑使用此选项。

    这些驱动程序将主要将会话数据存储在内存中而不是磁盘中,因此速度更快、效率更高,尽管性能提升通常可以忽略不计,除非您首先遇到与会话相关的性能瓶颈。如果您确实有如此大的会话数据导致性能问题,那么在重新配置会话引擎之前考虑解决此问题可能是恰当的。

    【讨论】:

    • 谢谢。我已经设置了 memcached,但我不想将它用于基本用户会话,因为我希望将会话锁定到每个域。我可以在变量名上附加一些内容以使其特定于域,但标准 php 会话适合我的需要。我只是担心 Laravel 会话可能无法很好地扩展。我正在使用 Laravel 5,所以我认为它会是。我认为编写代码的方式不能让我在未来轻松更改会话类型
    猜你喜欢
    • 2014-09-01
    • 1970-01-01
    • 2014-04-23
    • 2011-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    相关资源
    最近更新 更多