如何实现缓存系统?

时间:2018-12-09 13:01:48

标签: java spring spring-boot caching architecture

我正在开发一个Web应用程序,其中在Spring Boot中开发的后端使用来自公共API的数据,该API返回JSON数据。 搜索是通过全文(例如google)一词进行的,后端从应用程序前端接收到用户的查询,然后用户查询公共API,等待响应,处理信息并将其发送到前端。 我想在后端Spring Boot中实现缓存系统。 基本上,在Spring Boot调用API发布并等待响应之前,它会检查键/值系统过去是否已经完成搜索,如果是,则返回键值中的值

缓存系统:

  • 关键字:搜索条件,值:带有API公共响应的json。
  • 它必须保留数据,而不是易变的。
  • 它必须是键值搜索(缓存)。
  • 它必须由所描述的系统以外的其他系统更新,该系统会更新缓存的数据,并验证数据是否在基础(公共API)中已更改。

最初,我想到使用NoSQL数据库,例如mongoDB。但是经过更好的调查后,我遇到了Redis。您认为最好的是什么?

我想提出一些建议来实现这种体系结构。我不确定如何实现它,我怀疑Redis或MongoDB或其他。

谢谢。

2 个答案:

答案 0 :(得分:1)

由于搜索词的形式不同,我不确定在这种情况下缓存是否会对您有很大帮助。

如果您需要保护后端免受同一查询的多次执行,则可以使用Spring Cache。 它支持包括Redis在内的各种提供程序,并且具有evict mechanism

答案 1 :(得分:0)

您可以使用MemCache。准备好用于缓存的系统。