springboot之redis注解缓存

首先导入redis的依赖:

 <dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-redis</artifactId>
	</dependency>
	<dependency>
		<groupId>redis.clients</groupId>
		<artifactId>jedis</artifactId>
	</dependency>

在配置application.yml中进行配置:

spring:
  redis:
    database: 0
    host: 192.168.255.129
    port: 6379
    password: 123456
    jedis:
      pool:
        max-active: 100
        max-idle: 3
        max-wait: -1
        min-idle: 0
    timeout: 1000

注解标签解析:

a、@Configuration:

@Configuration底层是含有@Component ,所以@Configuration 具有和 @Component 的作用。

@Configuration可理解为用spring的时候xml里面的标签。

注:

  1. 配置类必须以类的形式提供(不能是工厂方法返回的实例),允许通过生成子类在运行时增强(cglib 动态代理)。

  2. 配置类不能是 final 类(没法动态代理)。

  3. 配置注解通常为了通过 @Bean 注解生成 Spring 容器管理的类。

  4. 配置类必须是非本地的(即不能在方法中声明,不能是 private)。

  5. 任何嵌套配置类都必须声明为static。

  6. @Bean方法不能创建进一步的配置类(也就是返回的bean如果带有@Configuration,也不会被特殊处理,只会作为普通的 bean)。

b、@EnableCaching:

  1. @EnableCaching注解是spring framework中的注解驱动的缓存管理功能。自spring版本3.1起加入了该注解。

  2. 如果你使用了这个注解,那么你就不需要在XML文件中配置cache manager了。

  3. 当你在配置类(@Configuration)上使用@EnableCaching注解时,会触发一个post processor,这会扫描每一个spring bean,查看是否已经存在注解对应的缓存。如果找到了,就会自动创建一个代理拦截方法调用,使用缓存的bean执行处理。

c、@Bean:

@Bean可理解为用spring的时候xml里面的标签

注:

  1. @Bean注解在返回实例的方法上,如果未通过@Bean指定bean的名称,则默认与标注的方法名相同;

  2. @Bean注解默认作用域为单例singleton作用域,可通过@Scope(“prototype”)设置为原型作用域;

  3. 既然@Bean的作用是注册bean对象,那么完全可以使用@Component、@Controller、@Service、@Repository等注解注册bean(在需要注册的类上加注解),当然需要配置@ComponentScan注解进行自动扫描。
    创建RedisConfig

RedisConfig类用于Redis数据缓存。继承CachingConfigurerSupport,是为了自定义生成KEY的策略,可以不继承。

package com.zking.config;
 
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import 
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 关于Spring Boot中的Redis注解可以用来缓存方法的问题,我可以回答。 Spring Boot中的@Cacheable注解可以使用Redis作为缓存存储,它可以用于将一个方法的返回值缓存起来,下次调用该方法时,如果缓存中存在相同的参数,就直接从缓存中获取结果,而不是再次执行该方法。可以通过指定缓存的key和过期时间等参数来控制缓存的行为。 例如,使用@Cacheable注解可以这样定义一个缓存方法: ``` @Cacheable(value="myCache", key="#param") public Object cachedMethod(String param) { // 方法的实现代码 } ``` 这段代码会将方法的返回值存储到名为"myCache"的缓存中,缓存的key是传入的参数param的值。如果下次再次调用该方法,如果参数值相同,就直接从缓存中获取结果。 需要注意的是,使用Redis作为缓存存储时,需要在Spring Boot中配置Redis的连接信息和相关的依赖库。同时,@Cacheable注解也需要和其他相关注解一起使用,例如@CacheConfig注解,用于配置缓存的一些属性,例如缓存名称和缓存的key前缀等。 总之,Spring Boot中的Redis注解可以用来方便地实现方法级别的缓存,可以提高系统的性能和响应速度。 ### 回答2: Spring Boot中通过注解@Cacheable来实现对方法的缓存。@Cacheable注解可用于类和方法上,用于标记需要进行缓存的方法。 通过在方法上添加@Cacheable注解,当方法被调用时,Spring Boot首先会检查缓存中是否存在该方法的结果,如果存在,则直接从缓存中获取结果并返回,而不会执行真正的方法体;如果不存在,则执行方法体,并将方法的返回结果放入缓存中。下次调用该方法时,直接从缓存中获取结果。 @Cacheable注解可以通过设置value属性来指定使用哪一个缓存策略。例如,@Cacheable(value="userCache")表示使用名为userCache的缓存策略进行缓存。 @Cacheable注解还可以通过设置key属性来指定缓存的key值。key属性的默认值是方法的所有参数组成的唯一值。通过指定不同的key值,可以实现对不同参数组合的缓存。 在使用@Cacheable注解时,需要先在配置文件中配置对应的缓存策略。例如,可以通过在application.properties或application.yml文件中添加配置spring.cache.type=redis来使用Redis作为缓存策略。 总之,Spring Boot的@Cacheable注解可以通过对方法添加缓存逻辑,减少方法的执行次数,提高应用的性能。这是通过将方法的结果缓存起来,提供快速的访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值