我有下面的2层spring
引导应用程序,希望使用redis
实现分布式二级缓存,以提高性能。
[Spring Boot体系结构] [1]
在这里,我们使用kubernates
,因此可能存在“原子服务A”的多个实例,因此需要分布式缓存。
尽管在数据库中修改数据的请求可能很少出现,但同样需要反映在cache
中。
想知道是否有redis
的标准解决方案来像从传统RDBMS
那样获取数据。
这里的假设解决方案类似于在启动时,“学生原子服务A”将从Redis cache
上的DB加载学生数据,然后任何后续删除/更新都应首先在Db中执行相同的操作,然后在Redis
中进行更新我也应该以查询Redis
的方式从RDBMS
获取记录。
例如select * from student where id <10
如果有人可以在此处指出示例实现的任何提示,那就太好了。
我已经浏览了许多站点,但是他们只谈论键值问题,但是希望找到一种类似DB Query的解决方案,从缓存中返回查询结果。
我已经用RedisTemplate
尝试过POC,但是找不到像我们查询数据库一样的api。从id <= 5
看不到任何API
,它允许我对RDBMS
进行类似redis cache API
的操作
答案 0 :(得分:1)
看不到任何允许我执行RDBMS等操作的API 使用Redis缓存API
典型的RDBMS(例如MySQL,Oracle等)和Redis是具有不同数据模型和查询语言的不同数据存储,因此它们实际上是持久性数据存储,实际上没有任何共同之处。您可以将两个不同级别的抽象与这些数据存储集成在一起。一种抽象是在存储库级别上-像Spring Data Redis这样的框架。对于Spring Data Redis存储库,请检查here。 Hibernate Data之类的框架提供了另一种抽象,该框架通过Hibernate OGM Redis与Redis集成 模块。这将更接近您的期望,因为它将为您提供丰富的JPQL查询语言(它与SQL非常相似,只不过它对对象而不是对元组进行操作)。这可能值得一试。