springboot缓存注解_Spring Boot 以注解的方式使用缓存

最近做的一个项目,融合了Spring Boot,Mybatis Plus , Shiro ,Redis,fastdfs ,数据库使用的是mysql,以druid作为连接池,这里只谈谈项目中redis缓存的基本使用方法。

redis的引入:

<properties>
<java.version>1.8</java.version>
<shiro.version>1.4.2</shiro.version>
</properties>

<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>${shiro.version}</version>
</dependency>

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

<dependency>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis</artifactId>
<version>3.2.3</version>
</dependency>

application.yml配置redis的参数

3a34f1da1a56a24751ccddec1faa0a00.png

RedisConfig配置类:(实际上并没有使用这个配置类,项目运行前我注释掉了)

/** * 设置redis的序列化规则 */
@Configurationpublic class RedisConfig {
@Beanpublic RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) {
CacheProperties.Redis redisProperties = cacheProperties.getRedis();
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
config = config.serializeValuesWith(RedisSerializationContext.SerializationPair
.fromSerializer(new GenericJackson2JsonRedisSerializer()));if (redisProperties.getTimeToLive() != null) {
config = config.entryTtl(redisProperties.getTimeToLive());
}if (redisProperties.getKeyPrefix() != null) {
config = config.prefixKeysWith(redisProperties.getKeyPrefix());
}if (!redisProperties.isCacheNullValues()) {
config = config.disableCachingNullValues();
}if (!redisProperties.isUseKeyPrefix()) {
config = config.disableKeyPrefix();
}return config;
}
}

启动类上注解 , 表示允许使用缓存(这个注解一定要加哟)

c782d12677a0403bedf5e662610a3189.png

我习惯在service层加添加或删除redis缓存

8d74bb31d3584b3886bdb56a8bad108e.png

cacheNames的值作为redis中key的前缀,key的值的数据来源若未加标注说明,则默认是从方法的参数中获取,key=“#result.id”表示的是获取返回值中的id

@cacheput 注解用于添加和修改,即往redis中放入数据(若在redis中已经存在同样的key,则会将这个有相同的key数据覆盖,这是redis的特性)

@cacheEvict注解用于删除,即删除redis中的某条数据,根据key删除

@cacheable注解一般用于查询,如果缓存中存在,直接从缓存中取,不查数据库。如果缓存中没有,从数据库查询并存入缓存,并设置超时时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值