【问题标题】:Laravel Redis CacheLaravel Redis 缓存
【发布时间】:2018-01-30 17:33:42
【问题描述】:

我对 Redis 缓存和 laravel 有疑问。默认情况下,laravel 使用 file 将视图缓存到文件并从该缓存中加载它们。

现在是这样,我开始在我的 Laravel 5.4 项目中使用 ElastiCache 和 Redis。如果我将驱动程序更改为 redis 并且它开始缓存(我可以通过加载时间来判断)但它实际上缓存了什么?它会自动缓存和检索我的视图吗? CSS? js?还有什么?

我也在使用 redis 作为会话驱动程序,这给了我什么?

缓存数据库也值得吗?我计划每小时缓存整个数据库,然后每当将新项目添加到数据库时,将其添加到现有缓存中。那可能吗?

【问题讨论】:

    标签: laravel caching laravel-5 redis amazon-elasticache


    【解决方案1】:

    redis 可以给你两个好处:

    1. 更快的数据检索。与基于文件或基于数据库的缓存系统(例如 memcached)相比,任何基于内存的缓存系统都可以为您提供这种优势。
    2. redis 中灵活的数据保存。 redis 支持字符串、列表、集合、排序集等多种数据类型存储。

    关于缓存什么?

    1. 缓存频繁请求的东西。如果您的客户端向您请求或查询某些内容,而您没有缓存,则必须从数据库中查询它,这会给您带来磁盘 I/O 时间成本。如果事情很重,那么 IO 成本会更大,并且会减慢您的服务器。所以聪明的方法是,只需查询一次,然后通过合适的数据类型存储将其保存到 redis 中。之后用缓存检索数千。但是您不需要缓存整个数据库。看起来很粗鲁。当你更新数据库中的内容时,只需从缓存中删除,下次有人查询后,它会再次保存到缓存中。

    2. 关于会话。这对于 http 服务器来说是非常频繁的访问,因此如果您的应用服务器有很多很多人,那么每个用户进入缓存的会话都比文件或数据库更轻量级。

    3. 缓存静态文件。其实我还没有处理过这个。但它绝对可以做到这一点!例如。在现代架构中,通常在你的 laravel 之前有一个 Http 服务器,例如 nginx。这样,您将直接使用 nginx 服务静态文件。如果你想减少磁盘 io,你可以为 nginx 添加一个类似 redis2-nginx-module 的模块来做同样的事情:将静态文件保存到 redis 一次并提供数千个服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-12
      • 2023-03-10
      • 2018-05-25
      • 2017-06-05
      • 2017-05-24
      • 2019-04-01
      • 2018-09-02
      相关资源
      最近更新 更多