首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何引入Redis只是为了缓存任何CRUD

如何引入Redis只是为了缓存任何CRUD
EN

Stack Overflow用户
提问于 2018-08-09 21:14:36
回答 1查看 353关注 0票数 0

我计划在我的应用程序中使用Redis实现一个缓存层。现在,每当用户启动某个计划负载时,应用程序都会从DB获取大量数据。这个计划在场景后面加载,触发很少的重量级数据访问,并在最终结果中编排所有调用。

现在正在通过JPA存储库进行数据访问,以访问我的Oracle DB。当我介绍redis层时,它并不是在第一次访问中启动缓存,而是应用程序试图从空缓存中获取数据。

我的问题是

  1. 如果我的设计工作,因为我想保持CRUD操作是在JPA存储库。我只想介绍一下用于缓存的redis,没有crud操作。
  2. 我有大量的数据(可能是2GB),应该放在缓存层中。最大的数据编辑能容纳多少?
EN

回答 1

Stack Overflow用户

发布于 2018-08-11 17:48:32

我的问题是

  1. 如果我的设计工作,因为我想保持CRUD操作是在JPA存储库。我只想介绍一下用于缓存的redis,没有crud操作。

它将工作,但您将有主要的问题缓存无效。当您执行CRUD操作时,您的redis缓存仍然会有旧数据,并且会有不一致的地方。使用redis作为缓存的一般方法是为每个键设置ttl()。但是,如果您执行CRUD操作,可以通过引入触发器来解决这种不一致的问题,在redis中删除键。

取决于您的工作负载,当您的缓存命中率较低时,您可以满足情况。例如,如果很少访问缓存中的密钥,那么所有密钥都将过期,直到下一次访问为止。坦率地说,在这种情况下,缓存无法有效工作。可以通过升温缓存或使用redis作为缓存,而将其作为第二个具有复制数据的存储来避免。

  1. 我有大量的数据(可能是2GB),应该放在缓存层中。最大的数据编辑能容纳多少?

由于物理资源(RAM)和密钥的大小以及密钥存储的数据大小,Redis是非常高效和有限的,其大小为512 it。

您必须考虑到,redis可以在虚拟内存中分割数据,而不是由键和数据表示的2Gb数据,因为它可以占用3GB的RAM。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51775874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档