【发布时间】:2019-05-10 13:55:45
【问题描述】:
我正在开发一个 Web 应用程序,其中在 Spring Boot 中开发的后端使用来自公共 API 的数据,该 API 以 JSON 格式返回数据。 搜索是通过术语、全文(如谷歌)完成的,后端从应用程序前端接收到用户的查询,然后搜索公共 API,等待响应,处理信息并将其发送到前端. 我想在后端实现缓存系统,Spring Boot。 基本上,在 Spring Boot 调用 API 发布并等待响应之前,它会检查键/值系统是否过去已经完成搜索,如果是,则返回键值中的内容.
缓存系统:
- 键:搜索条件,值:带有 API 公共响应的 json。
- 它必须持久化数据,而不是易失性。
- 它必须是键值搜索(缓存)。
- 它必须由更新缓存数据的系统以外的系统进行更新,验证数据是否在基础(公共 API)中发生更改。
最初我想使用 NoSQL 数据库,例如 mongoDB。但是经过更好的调查,我遇到了 Redis。你认为什么最好?
我想就实施此架构提出一些建议。我不确定如何实现它,我怀疑 Redis 或 MongoDB 或其他。
谢谢。
【问题讨论】:
-
了解通过缓存写入。是的,将搜索结果存储在缓存中以获得更低延迟的 API 是个好主意。 Redis 是一个不错的选择,因为它非常耐用,并且支持各种价值格式。 Redis 是分布式的,这也将帮助您水平扩展并从最近的服务器向客户端发送响应。
-
你读过 Hazelcast 吗?我认为这对您的情况来说是更好的解决方案
标签: java spring spring-boot caching architecture