spring boot注解方式使用redis缓存操作示例

 更新时间:2019年11月06日 11:18:05   作者:苍青浪  
这篇文章主要介绍了spring boot注解方式使用redis缓存操作,结合实例形式分析了spring boot注解方式使用redis缓存相关的依赖库引入、注解使用及redis缓存相关操作技巧,需要的朋友可以参考下

本文实例讲述了spring boot注解方式使用redis缓存操作。分享给大家供大家参考,具体如下:

引入依赖库

在pom中引入依赖库,如下

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

注解使用

@Cacheable
@Cacheable("product")
@Cacheable(value = {"product","order"}, key = "#root.targetClass+'-'+#id")
@Cacheable(value = "product", key = "#root.targetClass+'-'+#id")

自定义cacheManager

@Cacheable(value = "product", key = "#root.targetClass+'-'+#id” cacheManager="cacheManager")
@CachePut

应用到写数据的方法上,如新增/修改方法

@CachePut(value = "product", key = "#root.targetClass+'-'+#product.id")
@CacheEvict 

即应用到移除数据的方法上,如删除方法

@CacheEvict(value = "product", key = "#root.targetClass+'-'+#id")

提供的SpEL上下文数据

Spring Cache提供了一些供我们使用的SpEL上下文数据,下表直接摘自Spring官方文档:

名字 位置 描述 示例
methodName root对象 当前被调用的方法名 #root.methodName
method root对象 当前被调用的方法 #root.method.name
target root对象 当前被调用的目标对象 #root.target
targetClass root对象 当前被调用的目标对象类 #root.targetClass
args root对象 当前被调用的方法的参数列表 #root.args[0]
caches root对象 当前方法调用使用的缓存列表(如@Cacheable(value={"cache1", "cache2"})),则有两个cache #root.caches[0].name
argument name 执行上下文 当前被调用的方法的参数,如findById(Long id),我们可以通过#id拿到参数 #user.id
result 执行上下文 方法执行后的返回值(仅当方法执行之后的判断有效,如‘unless','cache evict'的beforeInvocation=false) #result

自定义Cache配置

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
 /**
 * 自定义redis key值生成策略
 */
 @Bean
 @Override
 public KeyGenerator keyGenerator() {
  return (target, method, params) -> {
   StringBuilder sb = new StringBuilder();
   sb.append(target.getClass().getName());
   sb.append(method.getName());
   for (Object obj : params) {
    sb.append(obj.toString());
   }
   return sb.toString();
  };
 }
 @Bean
 public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
  ObjectMapper om = new ObjectMapper();
  om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
  om.enableDefaultTyping(Object

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • stream中使用peek一些陷阱避免及解决方法

    stream中使用peek一些陷阱避免及解决方法

    这篇文章主要为大家介绍了stream中使用peek一些陷阱避免及解决方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 谈谈Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType

    谈谈Java类型中ParameterizedType,GenericArrayType,TypeVariabl,Wild

    这篇文章主要介绍Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType的相关资料,需要的朋友可以参考下
    2015-10-10
  • Java中如何使用Response重定向

    Java中如何使用Response重定向

    这篇文章主要介绍了Java中如何使用Response重定向,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • spring cloud Hystrix断路器的使用(熔断器)

    spring cloud Hystrix断路器的使用(熔断器)

    这篇文章主要介绍了spring cloud Hystrix断路器的使用(熔断器),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Java LinkedHashMap深入分析源码

    Java LinkedHashMap深入分析源码

    大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap,不过HashMap有一个问题,就是迭代HashMap的顺序并不是HashMap放置的顺序,也就是无序。HashMap的这一缺点往往会带来困扰,所以LinkedHashMap就闪亮登场了,这篇文章通过源码解析带你了解LinkedHashMap
    2022-11-11
  • SWT(JFace)体验之模拟BorderLayout布局

    SWT(JFace)体验之模拟BorderLayout布局

    SWT(JFace)体验之模拟BorderLayout布局代码。
    2009-06-06
  • binarySearch在java的查找实例用法

    binarySearch在java的查找实例用法

    在本篇文章里小编给大家整理的是一篇关于binarySearch在java的查找实例用法,对此有兴趣的朋友们可以学习参考下。
    2021-02-02
  • MyBatis和MyBatis Plus并存问题及解决

    MyBatis和MyBatis Plus并存问题及解决

    最近需要使用MyBatis和MyBatis Plus,就会导致MyBatis和MyBatis Plus并存,本文主要介绍了MyBatis和MyBatis Plus并存问题及解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Spring Security灵活的PasswordEncoder加密方式解析

    Spring Security灵活的PasswordEncoder加密方式解析

    这篇文章主要介绍了Spring Security灵活的PasswordEncoder加密方式解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java实现心跳机制的方法

    Java实现心跳机制的方法

    这篇文章主要介绍了Java实现心跳机制的方法,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07

最新评论