当前位置: 首页 > 知识库问答 >
问题:

Spring(引导)-Redis缓存-它需要创建存储库吗?

李敏学
2023-03-14

我想问一个关于spring缓存注释和存储库创建的问题。

我正在尝试使用Spring Boot在redis中缓存我的值。(我有一个值,如果它不在缓存里,我需要缓存它,如果它在缓存里,我需要从那里获取它)

    null
    @CachePut(value = 'user', key = "#id")
    @CacheEvict(value = 'user', key = "#id")
@RedisHash("balance")

我的问题是:如果我使用了上面的注释(@Cacheable、@CachePut和@CacheEvict),我是否应该通过扩展CrudRepository来为我感兴趣存储的类对象创建一个存储库?还是spring在使用上述注释时自动创建并自动管理?如果您自己扩展了CrudRepository,您如何从Redis按键检索项目?

谢谢

共有1个答案

宇文灿
2023-03-14

不,这是不需要的。请注意,第三个链接没有提到缓存。有两个项目,带有redis缓存提供程序的spring cache和spring data redis。第三个环节是谈论更大、更通用的用例。Spring data redis旨在支持redis作为一个成熟的持久层。然而,您当然可以只将redis用作缓存层。在这种情况下,除了使用普通注释之外,您不需要做任何事情,也不应该做任何事情

 类似资料:
  • 我们正在使用@Cacheable和@CacheEvict来实现缓存。 问题是,构建缓存需要3分钟以上。根据应用程序逻辑,首先清除缓存,然后创建缓存。在此期间,如果有任何用户访问我们的应用程序,应用程序将无法发送数据,因为缓存仍在构建中。 是否有任何spring方法可以首先构建缓存,然后用新缓存替换旧缓存(除了@CachePut之外)。 谢谢,斯里坎特。

  • 在Spring Data JPA的“入门”示例中,我们创建了一个扩展CrudRepository的接口。但是,它只处理一个实体: 在现实世界的应用程序中,有许多实体(表),我们需要对它们进行CRUD操作。使用具有多个(相关或无关)实体的Spring数据JPA存储库的正确方法是什么? 我是否必须为每个实体创建接口并逐个自动连接它们(现在听起来这是一个非常疯狂的想法)?

  • 主要内容:创建一个远程存储库在本章中,我们将看到如何创建一个远程Git仓库; 我们需要一个远程Git仓库来执行团队协作。这一篇文章很重要,直接影响到后面的章节的学习。所以,希望大家可先耐心地看完本章内容,并按本章一步步的操作。 创建一个远程存储库 我们将演示在 http://git.oschina.net/ 软件项目的托管平台上创建和初始化一个新的存储库。 注:你也可以使用 GitHub (http://github.com

  • 我在应用程序中尝试将Spring缓存与ehcache结合使用时遇到了一个问题。由于无法详细说明的原因,我的应用程序使用BeanFactory图而不是ApplicationContext。正如Spring文档中所述,只要我们手动注册BeanPostProcessor,这种方法就可以很好地工作。 我们现在正在为应用程序添加缓存。当我们使用最简单的注释配置时,它可以工作。 //这很有效 我们将其配置为为

  • 我需要使用spring@Cacheable注释缓存对MongoDB的调用: 不幸的是,使用@Cacheable注释接口中的任何方法都会导致以下异常: 我正在寻找一种方法来缓存对DB的调用(这相当昂贵)。有什么想法吗?

  • 我按照web上一些教程使用redis设置Spring缓存,