Laravel - 使用哪个缓存驱动程序?

Sen*_*ray 5 caching laravel laravel-5

这是我第一次处理缓存,尽管我查看了 laravel 文档和其他各种站点以获取有关如何设置它的说明,但我仍然对使用哪个以及有什么不同感到有些茫然缓存驱动做。

我目前的情况是我有一个日程安排系统,您可以在其中创建当前一周课程的 pdf。他们还可以选择未来的日期并制作该周的 pdf。这是一项前端功能,因此任何访问该站点的人都可以使用它。有许多类和类可以具有的模式变体,因此查询将有大量记录要查看。在支持的缓存驱动程序中哪个驱动程序最好?(apc、数组、数据库、文件、memcached 和 redis)

印象分

我想了解使用哪个以及为什么使用,以便我可以为未来的项目做出最佳决策。那么每个人做什么/什么时候最好使用它们?- 不需要回答即可获得接受的答案,但我真的很想知道。

谢谢!

Hub*_*NNN 14

在 Laravel 中使用缓存时,您应该考虑 3 个可能的“家庭”:

  1. 临时/调试

    • 大批
  2. 始终可用

    • 文件
    • 数据库
    • apc(自 PHP7 起我就不相信这个了)
  3. 投入的

    • Redis
    • 内存缓存

由于您可以轻松替换缓存驱动程序,因此您不需要根据您的用例选择一个,而是更多地基于您的服务器需求/负载和可能性。

例如,在您的开发机器上,我建议使用文件,因为这样您就不需要任何额外的软件堵塞您的 PC,而且即使您做了一些非常糟糕的事情,例如破坏了 artisan 命令,您也可以获得快速清除缓存的能力。您需要做的就是删除 storage/framework 文件夹,然后您再次拥有一个新实例(确保在此之后从您的存储库中重新生成 .gitignore 文件)

对于您的主服务器,您必须考虑您的可能性。如果您拥有这些免费托管网站之一,您几乎肯定无法安装任何新软件,因此您可以考虑使用文件或数据库。尽管数据库可能比文件快,但在大多数情况下,它是您网站的最弱点,并且尝试将更多数据推入该瓶颈并不是一个好主意,这就是为什么我建议不要使用它,而是坚持文件。

如果您有专用服务器,那么您肯定应该选择 memcached 或 redis。两者中的哪一个?这取决于很多因素,你可以在网上找到很多比较,随便找一个。我个人更喜欢 redis,因为它具有持久化数据的能力,但任何一个都是很好的解决方案。