java - Spring-boot 缓存中的批量缓存支持
问题描述
考虑:
@Service
class MyService {
@Autowired
MyRepository repo;
List<Book> getBooks(List<String> ids) {
return repo.getBooks(ids);
}
}
@Repository
class MyRepository{
public List<Book> getBooks(List<String> ids) {
...
// execute bulk db call
}
}
现在我想在上面的存储库中使用 spring 缓存框架。
将其视为 Redis 缓存。
所以问题可以分解为:
- 如何在给定 id 列表的情况下对 Redis 进行批量调用。
- 如何
getBooks
仅在 Redis 查找时缓存丢失的 id 调用存储库中的方法。 - 然后最后将方法调用和Redis查找的结果合并返回给服务。
这是一个非常常见的问题陈述,可以通过在存储库上编写自定义装饰器轻松解决,但我希望通过 spring 框架解决它。
解决方案
推荐阅读
- apple-sign-in - 使用 Apple 登录按钮未出现在网站上
- reactjs - 如何使无线电输入保存状态并再次使用它
- swift - 从选择器存储值并将其传递给函数
- reactjs - useEffect 修复中的无限循环?
- c++ - 对...collect2:error:ld 的未定义引用返回 1 个退出状态
- python-3.x - 在 Python 3 中将字典返回给函数
- ssh - “屏幕”(来自 ssh 会话)是否被视为本地或网络连接?
- java - 无法在 SpringBoot 应用程序中使用 @Value 读取属性
- java - 如何使用指定参数启动 jar 文件
- javascript - 出现错误未捕获错误:[vuex] getters 应该是函数,但“getters.getters”是 {}。将存储拆分为模块时在 VUEX 存储中