【发布时间】:2021-07-09 01:02:55
【问题描述】:
我正在开发一个 Laravel 应用程序并开始使用 Redis 作为缓存系统。我正在考虑缓存我拥有的所有特定模型的数据,因为用户可能会经常提出这个模型涉及的 API 请求。一个有效的解决方案是将每个模型存储在哈希中,其中字段是该记录的唯一 ID,而值只是唯一模型的数据,还是这个用例对于像 Redis 这样的简单键值数据库来说太复杂了?当我从哈希中检索所有数据时,我也很好奇如何从哈希中创建模型实例。感谢回复!
【问题讨论】:
我正在开发一个 Laravel 应用程序并开始使用 Redis 作为缓存系统。我正在考虑缓存我拥有的所有特定模型的数据,因为用户可能会经常提出这个模型涉及的 API 请求。一个有效的解决方案是将每个模型存储在哈希中,其中字段是该记录的唯一 ID,而值只是唯一模型的数据,还是这个用例对于像 Redis 这样的简单键值数据库来说太复杂了?当我从哈希中检索所有数据时,我也很好奇如何从哈希中创建模型实例。感谢回复!
【问题讨论】:
简短回答:是的,您可以在 Redis 的键值缓存中存储模型、集合或基本上任何内容。只要提供的密钥是唯一的并且可以追溯。 Redis 甚至可以用作主数据库。
长答案
最终,我认为这取决于实施。在有人可以/应该考虑缓存所有模型之前,可以进行很多优化。对于涉及大型数据集的“简单”记录,我建议首先优化您的查询和代码并检查结果。例子:
toBase() 方法。这会检索所有数据,但不会创建 Eloquent 模型,从而节省宝贵的资源。对于不经常更改或无法再优化的大型数据集:缓存是可行的方法!
这里没有正确的答案,但也许这对您有所帮助!有很多 packages 实现了类似的行为。
【讨论】: