有没有一种方法可以从数据库(通过Mongo存储库)数据中填充一次Map,并在需要时从多个类中重复使用它,而不是通过存储库访问数据库。

最佳答案

根据您的评论,您正在寻找的是一种缓存机制。与文件,数据库或其他介质相反,缓存是允许数据驻留在内存中的组件,以便快速检索信息(与更大的内存占用量相对)。

在线上可能有各种教程,但是通常所有缓存都具有以下行为:
1.它们是键值对结构。
2.驻留在缓存中的每个实体还具有生存时间,即它被视为有效的时间。

您可以在存储库层中实现此功能,因此缓存机制对应用程序的其余部分将是透明的(但是您可能要考虑公开允许清除/使部分或全部缓存无效的功能)。

因此,基本上,当查询到您的存储库层时,请检入缓存。如果它在那里,请检查生存时间。如果仍然有效,则返回该值。

如果密钥不存在或TTL已过期,则在缓存中添加/覆盖数据。请记住,当您自己更新数据模型时,您还将相应地使高速缓存无效,以便在下一次调用时从数据库中提取新的/新的数据。

10-08 14:34