配置

maven项目进入相关配置

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

配置文件添加redis配置

Application.properties

#redis链接地址
spring.redis.host=
#redis端口号 默认6379
spring.redis.port=
#redis密码 如果没有密码可以不配置
spring.redis.password=
#redis的库 可以理解为mysql的数据库 redis默认0-15
spring.redis.database=

设置redis序列化方式

@Bean
public RedisTemplate setRedisTemplate(@Autowired RedisTemplate redisTemplate){
   StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
   Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
   GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
   redisTemplate.setKeySerializer(stringRedisSerializer);
   redisTemplate.setHashKeySerializer(stringRedisSerializer);
   redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
   redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
   return redisTemplate;
}

设置redis key的实效时长

@Bean
public CacheManager cacheManager(@Autowired RedisTemplate redisTemplate){
   RedisCacheManager redisCacheManager=new RedisCacheManager(redisTemplate);
   /*秒为单位,配置失效时间为一天*/
   redisCacheManager.setDefaultExpiration(86400L);
   return redisCacheManager;
}

具体使用

注解形式使用缓存
@Cacheable(value="test",key="#p0",nuless="#result==null")
public String getTest(String parameter) {
 if(parameter!=null){
   return parameter;
}
 return null;
}

value属性表示当前方法的返回值是会被缓存在哪个Cache上

key属性表示getTest方法返回结果时对应的key的

key的不同使用方式

key="#p0",key="p0.id",key="#parameter.trim()"

nulless属性表示为忽略缓存,当方法的返回值达到我们预期的结果的时候可以设置为不添加缓存,以上例子为返回为null不添加缓存

注解形式删除缓存
@CacheEvict(value = "pullDownList",key = "#parameter.trim()")
public boolean refresh(String parameter){
return true;
}

value要删除的cache key要删除的缓存的key

RedisTemplate使用redis

1.使用spring注入进来一个redis

@Autowired
private RedisTemplate redisTemplate;

2.获得一个要redis储存/获取的key,value的类型

ValueOperations<String,String> valueOperations = redisTemplate.opsForValue();
valueOperations.set(key,value,long,TimeUnit);
String valueString=valueOperations.get(key);

TimeUnit是一个时间枚举

3.查询key是否存在

Boolean b=redisTemplate.hasKey(string);

最新文章

  1. 5.JAVA之GUI编程窗体事件
  2. UNITY实现FLASH中的setTimeout
  3. 循序渐进做项目系列(5):制作安装包,谁人都可以!——VS制作安装包简明教程
  4. linux清除当前屏幕
  5. U盘安装XP_sp3
  6. eclipse 中发布 maven 项目到 tomcat
  7. Nginx实现内参:为什么架构很重要?
  8. 新手浅谈C#Task异步编程
  9. android 为组件添加contextMenu上下文菜单
  10. Bitbucket 触发内网 Jenkins Build
  11. 团队作业4——第一次项目冲刺(Alpha版本)11.16
  12. MySQL搭建主从数据库 实现读写分离
  13. 还需要注册的是我们还有一个是“交差集” cross join, 这种Join没有办法用文式图表示,因为其就是把表A和表B的数据进行一个N*M的组合,即笛卡尔积。表达式如下:
  14. 利用QT、QWebview、ffmpeg实现的屏幕录制方案
  15. Hibernate学习笔记2.3(Hibernate基础配置)
  16. tensorflow中屏蔽输出的log信息方法
  17. Tomcat问题:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined ,At least one of these environment variable is needed to run this program
  18. noip2017 PJ AK记
  19. 字符型设备驱动程序-first-printf以及点亮LED灯(三)
  20. restful返回 json数据的JavaBean设计01

热门文章

  1. Linux_CentOS 中systemctl 管理服务、防火墙 firewalld 以及 SELinux 配置
  2. (转)CentOS 7.6 上编译安装httpd 2.4.38
  3. 泡泡一分钟:Using Geometric Features to Represent Near-Contact Behavior in Robotic Grasping
  4. Ansible-Hoc--样例
  5. 如何确定垃圾?JVM GC ?
  6. sql数据库查询相关操作,SQL的应用——SQL多表连查、子查询、多行子查询
  7. 问题三:Appium 的 UIAutomator2 模式下使用 sendKeys 出现错误
  8. 08 Tomcat+Java Web项目的创建和War的生成
  9. path包 + pathfile 包 — 汇总
  10. Java开发笔记(一百一十三)HttpClient实现下载与上传