【发布时间】:2020-10-04 01:42:40
【问题描述】:
我正在创建一个 API。在这个 API 中,我在中间件和控制器中多次访问数据库中的(权限)表。我在想,与其多次访问数据库,不如调用一次,多次使用。调用一次后,我可以将其存储在服务提供者的缓存中。但我不确定这是否是一个好方法,因为 API 路由不会加载会话等所有服务。
还有其他方法,例如将数据存储到配置中。或者创建一个类并为其创建一个外观,然后在需要时调用它。但是我很好奇缓存是否可以在 API 路由中工作,这是一个好主意吗?
【问题讨论】:
-
路由的类型无关紧要,它们只是有不同的中间件堆栈...如果您为相同的数据多次访问某些内容并且它不经常更改,那么缓存可能是一个不错的选择选项,但是您应该进行测试以确保您实际上从使用它中获得了好处......您也有不同的方式来查看这里的缓存,您可以只拥有一个运行时缓存,其中一个对象在第一次之后只是持有这些权限当您检索它们时,或者您可以将它们放在您直接访问的实际缓存存储中
-
@lagbox 嘿实际上运行时缓存将是一个很好的解决方案,因为我不需要运行后的数据。而且我想我以后不需要清除它。我该如何使用运行时缓存?
-
简而言之,您可以制作一些东西来为您检索所有权限(或者如果它已经检索到它们,只需返回它缓存的内容)并将其绑定到容器并在您调用它时调用它想要检索权限,现在一件事情可以将它们存储在一个数组中,并且它不会每次都继续访问数据库......一个概念的超级简单概述......你想要实现这样的事情吗跨度>
-
肯定会这样做。谢谢@lagbox。
标签: laravel caching api-design