caching - 如何在 spring boot 应用程序中实现 redis 分布式缓存,允许像 RDBMS 一样查询缓存数据

标签 caching redis spring-data-redis distributed-caching

我有 2 层 spring如下启动应用程序并希望使用 redis 实现分布式二级缓存作为提高性能。 [Spring Boot架构][1]
这里我们使用 kubernates因此可能有多个“原子服务 A”实例,因此需要分布式缓存。 尽管可能很少有请求来不那么频繁地修改数据库中的数据,但同样需要反射(reflect)在 cache 中。 . 想知道是否有任何标准解决方案 redis像从传统 RDBMS 中获取数据一样. 这里假设的解决方案就像启动时一样,“学生原子服务 A”应从 Redis cache 上的数据库加载学生数据。然后任何后续删除/更新应首先在 Db 中执行相同操作,然后在 Redis 中更新我还应该从 Redis 获取记录我们查询RDBMS的方式. 例如 select * from student where id <10

如果有人能在这里指出示例实现的任何提示,那就太好了。

我浏览过各种网站,但他们只谈论键值的事情,但希望找到一个类似数据库查询的解决方案,查询结果将从缓存中返回。 我已经尝试使用 RedisTemplate 进行 POC但是找不到像我们查询数据库的方式那样的 api,例如从 id<=5

的学生中选择 *

没有看到任何API这将允许我进行类似 RDBMS 的操作与 redis cache API

最佳答案

Do not see any API which shall allow me to do operations like RDBMS with redis cache API

典型的 RDBMS(如 MySQL、Oracle 等)和 Redis 是具有不同数据模型和查询语言的不同数据存储,因此除了它们是持久性数据存储外,它们几乎没有任何共同点。您可以将两个不同级别的抽象与这些数据存储集成。一种抽象是在存储库级别——像Spring Data Redis这样的框架。提供。对于 Spring Data Redis 存储库检查 here .另一个抽象是由像 Hibernate Data 这样的框架提供的。通过 Hibernate OGM Redis 提供与 Redis 的集成 模块。这更接近您的期望,因为它将为您提供丰富的 JPQL 查询语言(它非常接近 SQL,只是它对对象而不是元组进行操作)。这可能值得一试。

关于caching - 如何在 spring boot 应用程序中实现 redis 分布式缓存,允许像 RDBMS 一样查询缓存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57555976/

相关文章:

java - "Failed to deserialize object"在点燃缓存中插入对象时出错

c++ - 指针追逐基准 : Read+Write(+CLFLUSH) faster than Read(+CLFLUSH)

amazon-web-services - aws elasticache redis 设置和获取

redis - 锁定redis集群

spring - 在 CloudFoundry 上为 Redis 实例配置哨兵节点

"use runtime optimized javascript and css resources"时在 XPage 中缓存 CSS 和 JS 资源

ruby-on-rails - 用于个性化新闻提要的 Rails 缓存技术

Redis - 存储多个对象的选项

scripting - 使用变量 KEYS 从 Lua 调用 Redis zunionstore

java - 使用分页从redis缓存中检索数据