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

时间:2017-08-14 15:06:08

标签: laravel caching laravel-5

这是我第一次处理缓存,尽管我查看了laravel文档和其他各种网站以获取如何设置它的说明,但我还是有点失落。使用和不同的缓存驱动程序做什么。

我目前的情况是我有一个调度系统,您可以在其中创建当前课程类的pdf。他们也可以选择未来的日期并制作该周的pdf。这是一个前端功能,因此访问该网站的任何人都可以使用它。类可以有许多类和变体模式,因此查询将有大量记录可供查看。哪个驱动程序最适合支持的缓存驱动程序? (apc,array,database,file,memcached& redis)

布朗尼积分

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

谢谢!

2 个答案:

答案 0 :(得分:1)

当谈到在Laravel中使用缓存时,你有3个可能的“家庭”,你应该对它们进行调整:

  1. 临时/调试

    • 阵列
  2. 始终可用

    • 文件
    • 数据库
    • apc(自PHP7以来我不相信这个)
  3. 专用

    • redis的
    • 分布式缓存
  4. 由于您可以轻松替换缓存驱动程序,因此您无需根据用例选择缓存驱动程序,而是根据服务器需求/负载和可能性进行更多操作。

    例如在你的开发机器上我建议使用文件,因为这样你不需要任何额外的软件堵塞你的PC加上你能够快速清除缓存,即使你做了像打破工匠命令那样的非常糟糕的事情。您需要做的就是删除存储/框架文件夹,然后再次有一个新实例(确保在此之后从存储库重新生成.gitignore文件)

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

    如果您有专用服务器,则应该明确选择memcached或redis。哪两个之一?这取决于很多因素,你可以在网上找到很多比较,只需要找一个。我个人更喜欢redis,因为它能够持久保存数据,但任何一个都是一个很好的解决方案。

答案 1 :(得分:0)

通常,您会使用缓存进行频繁查询(当您需要经常执行特定的读取操作但不经常写入时)。如果不是这种情况,通常会回退到DB。

查看您的用例,听起来这是一个每周运行一次的批处理作业。因此,这是一项不常见的任务,每周数据都会很新鲜。那么你希望通过缓存实现什么目标呢?