springBoot集成Redis,RedisTmple操作redis和注解实现添加和清空缓存功能
2024-10-20 08:52:23
配置
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);
最新文章
- 5.JAVA之GUI编程窗体事件
- UNITY实现FLASH中的setTimeout
- 循序渐进做项目系列(5):制作安装包,谁人都可以!——VS制作安装包简明教程
- linux清除当前屏幕
- U盘安装XP_sp3
- eclipse 中发布 maven 项目到 tomcat
- Nginx实现内参:为什么架构很重要?
- 新手浅谈C#Task异步编程
- android 为组件添加contextMenu上下文菜单
- Bitbucket 触发内网 Jenkins Build
- 团队作业4——第一次项目冲刺(Alpha版本)11.16
- MySQL搭建主从数据库 实现读写分离
- 还需要注册的是我们还有一个是“交差集” cross join, 这种Join没有办法用文式图表示,因为其就是把表A和表B的数据进行一个N*M的组合,即笛卡尔积。表达式如下:
- 利用QT、QWebview、ffmpeg实现的屏幕录制方案
- Hibernate学习笔记2.3(Hibernate基础配置)
- tensorflow中屏蔽输出的log信息方法
- 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
- noip2017 PJ AK记
- 字符型设备驱动程序-first-printf以及点亮LED灯(三)
- restful返回 json数据的JavaBean设计01
热门文章
- Linux_CentOS 中systemctl 管理服务、防火墙 firewalld 以及 SELinux 配置
- (转)CentOS 7.6 上编译安装httpd 2.4.38
- 泡泡一分钟:Using Geometric Features to Represent Near-Contact Behavior in Robotic Grasping
- Ansible-Hoc--样例
- 如何确定垃圾?JVM GC ?
- sql数据库查询相关操作,SQL的应用——SQL多表连查、子查询、多行子查询
- 问题三:Appium 的 UIAutomator2 模式下使用 sendKeys 出现错误
- 08 Tomcat+Java Web项目的创建和War的生成
- path包 + pathfile 包 — 汇总
- Java开发笔记(一百一十三)HttpClient实现下载与上传