【问题标题】:Laravel how to "properly" store & retrieve models in a Redis hashLaravel 如何在 Redis 哈希中“正确”存储和检索模型
【发布时间】:2021-07-09 01:02:55
【问题描述】:

我正在开发一个 Laravel 应用程序并开始使用 Redis 作为缓存系统。我正在考虑缓存我拥有的所有特定模型的数据,因为用户可能会经常提出这个模型涉及的 API 请求。一个有效的解决方案是将每个模型存储在哈希中,其中字段是该记录的唯一 ID,而值只是唯一模型的数据,还是这个用例对于像 Redis 这样的简单键值数据库来说太复杂了?当我从哈希中检索所有数据时,我也很好奇如何从哈希中创建模型实例。感谢回复!

【问题讨论】:

    标签: php laravel redis


    【解决方案1】:

    简短回答:是的,您可以在 Redis 的键值缓存中存储模型、集合或基本上任何内容。只要提供的密钥是唯一的并且可以追溯。 Redis 甚至可以用作主数据库。

    长答案

    最终,我认为这取决于实施。在有人可以/应该考虑缓存所有模型之前,可以进行很多优化。对于涉及大型数据集的“简单”记录,我建议首先优化您的查询和代码并检查结果。例子:

    1. 只选择您需要的数据,而不是整个模型。
    2. 针对大型记录时,使用Database Query Builder 与数据库交互,而不是Eloquent(由于 Active Record 模式,Eloquent 的速度明显变慢)。
    3. 考虑使用toBase() 方法。这会检索所有数据,但不会创建 Eloquent 模型,从而节省宝贵的资源。
    4. 使用Laravel debugbar 等工具分析和发现潜在的长查询负载。

    对于不经常更改或无法再优化的大型数据集:缓存是可行的方法!

    这里没有正确的答案,但也许这对您有所帮助!有很多 packages 实现了类似的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 2015-05-26
      • 2016-06-21
      • 1970-01-01
      相关资源
      最近更新 更多