当前位置: 首页 > 知识库问答 >
问题:

如何实现缓存系统?

广晔
2023-03-14

我正在开发一个Web应用程序,其中后端在Spring引导中开发,消耗公共API中返回JSON中数据的数据。搜索是通过术语、全文(像谷歌)完成的,后端从应用程序前端接收用户的查询,用户的查询反过来搜索公共应用编程接口,等待响应,处理信息并将其发送到前端。我想在后端Spring Boot中实现缓存系统。基本上,在Spring引导调用API发布并等待响应之前,它会检查键/值系统是否已经在过去完成了搜索,如果是,返回键的值中的值。

缓存系统:

  • 关键字:搜索术语,值:json和API公共响应
  • 它必须持久化数据,而不是易变
  • 它必须是一个键值搜索(缓存)
  • 它必须由所述系统以外的系统进行更新,该系统更新缓存的数据,验证数据是否在基础(公共API)中发生了更改

最初我想使用NoSQL数据库,比如mongoDB。但在更好地调查之后,我遇到了Redis。你认为什么最好?

我想问一些关于实现这个架构的建议。我不知道如何实现它,我怀疑Redis或MongoDB或其他。

谢谢。

共有2个答案

岳俊晖
2023-03-14

你可以使用MemCache。它为缓存系统做好了准备。

从建明
2023-03-14

在这种情况下,我不确定缓存会对你有什么帮助,因为搜索词的形式不同。

如果需要保护后端免受同一查询的多次执行,可以使用Spring Cache。它支持包括Redis在内的不同提供商,并具有驱逐机制

 类似资料:
  • 本文向大家介绍Django缓存系统实现过程解析,包括了Django缓存系统实现过程解析的使用技巧和注意事项,需要的朋友参考一下 在动态网站中,用户每次请求一个页面,服务器都会执行以下操作:查询数据库,渲染模板,执行业务逻辑,最后生成用户可查看的页面。 这会消耗大量的资源,当访问用户量非常大时,就要考虑这个问题了。 缓存就是为了防止重复计算,把那些消耗了大量资源的结果保存起来,下次访问时就不用再次计

  • 1)我想从缓存中获得数据,如果缓存中没有数据,那么应该从数据库中获取数据。 2)如果我点击/api/cacherefresh,控制器将刷新所有表。

  • 配置 Laravel 为各种后端缓存提供丰富而统一的 API,而其配置信息位于 config/cache.php 文件中,你可以指定默认的缓存驱动程序。Laravel 支持当前流行的后端缓存,例如 Memcached 和 Redis。 缓存配置文件还包含各种其他选项,这些选项都记录在文件中,因此请确保阅读这些选项。 默认情况下,Laravel 配置为使用 file 缓存驱动程序,它将序列化的缓存对

  • 问题内容: 最少使用(LFU)是一种高速缓存算法,用于管理计算机内的内存。此方法的标准特性涉及系统跟踪内存中块被引用的次数。当缓存已满且需要更多空间时,系统将以最低参考频率清除项目。 例如,用Java来实现最近使用的对象缓存的最佳方法是什么? 我已经使用LinkedHashMap实现了一个(通过保持访问对象的次数),但是我很好奇是否有任何新的并发集合会更好。 考虑这种情况:假设缓存已满,我们需要为

  • 问题内容: 不要说EHCache或OSCache等。出于这个问题的目的,假设我想仅使用SDK实现自己的实现(边做边学)。考虑到缓存将在多线程环境中使用,你将使用哪些数据结构?我已经使用LinkedHashMap和Collections#synchronizedMap实现了一个,但是我很好奇是否有任何新的并发集合会更好。 更新:当我发现这个块时,我只是在阅读Yegge的最新文章: 如果你需要固定时间

  • 我有一个带有guice但没有spring的应用程序。我有: 我有两个实现: 我希望能够将缓存服务注入所有其他服务,并且希望在缓存服务中注入正常服务。问题是,当我想在其他类中注入服务接口时,实现是随机选择的。有没有办法解决这个问题?