我正在开发一个 Web 应用程序,其中在 Spring Boot 中开发的后端使用来自公共(public) API 的数据,该 API 以 JSON 格式返回数据。 搜索是通过术语、全文(如google)完成的,后端从应用程序前端接收用户的查询,然后搜索公共(public)API,等待响应,处理信息并将其发送到前端。 我想在后端实现缓存系统,Spring Boot。 基本上,在 Spring Boot 调用 API 发布并等待响应之前,它会检查键/值系统是否已在过去完成搜索,如果是,则返回键值中的内容.
缓存系统:
- 键:搜索词,值:带有 API 公共(public)响应的 json。
- 它必须持久保存数据,而不是 volatile 。
- 它必须是键值搜索(缓存)。
- 它必须由除所描述的更新缓存数据的系统以外的系统进行更新,以验证基础数据是否已更改(公共(public) API)。
最初我想到使用NoSQL数据库,比如mongoDB。但经过深入研究,我发现了Redis。你认为什么最好?
我想询问一些实现此架构的建议。我不知道如何实现它,我怀疑 Redis 或 MongoDB 或其他。
谢谢。
最佳答案
由于搜索词的形式不同,我不确定缓存在这种情况下会对您有多大帮助。
如果您需要保护后端免受同一查询的多次执行,您可以使用 Spring Cache 。 它支持包括 Redis 在内的不同提供商,并具有 evict mechanism
关于java - 缓存系统如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53692576/