首页 > 解决方案 > 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 缓存。

所以问题可以分解为:

  1. 如何在给定 id 列表的情况下对 Redis 进行批量调用。
  2. 如何getBooks仅在 Redis 查找时缓存丢失的 id 调用存储库中的方法。
  3. 然后最后将方法调用和Redis查找的结果合并返回给服务。

这是一个非常常见的问题陈述,可以通过在存储库上编写自定义装饰器轻松解决,但我希望通过 spring 框架解决它。

标签: javaspringspring-bootcachingspring-cache

解决方案


推荐阅读