springBoot集成Redis,RedisTmple操作redis和注解实现添加和清空缓存功能
配置
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);
springBoot集成Redis,RedisTmple操作redis和注解实现添加和清空缓存功能的更多相关文章
- SpringBoot 结合 Spring Cache 操作 Redis 实现数据缓存
系统环境: Redis 版本:5.0.7 SpringBoot 版本:2.2.2.RELEASE 参考地址: Redus 官方网址:https://redis.io/ 博文示例项目 Github 地址 ...
- spring-boot集成mybatis,用redis做缓存
网上有很多例子了,执行源码起码有3个,都是各种各样的小问题. 现在做了个小demo,实现spring-boot 用redis做缓存的实例,简单记录下思路,分享下源码. 缓存的实现,分担了数据库的压力, ...
- SpringBoot 集成Shiro之使用Redis缓存授权认证信息
因为用户认证与授权需要从数据库中查询并验证信息,但是对于权限很少改变的情况,这样不断从数据库中查询角色验证权限,对整个系统的开销很大,对数据库压力也随之增大.因此可以将用户认证和授权信息都缓存起来,第 ...
- spring data redis RedisTemplate操作redis相关用法
http://blog.mkfree.com/posts/515835d1975a30cc561dc35d spring-data-redis API:http://docs.spring.io/sp ...
- [ecmagent][redis学习][1初识redis] python操作redis
#1 连接redis # 连接redis -- import redis -- 使用端口连接redis conn = redis.Redis(host=) -- 使用套接字连接 r = redis.R ...
- Redis - Python操作Redis
目录 Python操作Redis 一. Redis安装和基本使用 二. Python操作Redis API使用 1.操作模式 2.连接池 3.Django配置Redis 4.操作 Python操作Re ...
- python通过连接池连接redis,操作redis队列
在每次使用redis都进行连接的话会拉低redis的效率,都知道redis是基于内存的数据库,效率贼高,所以每次进行连接比真正使用消耗的资源和时间还多.所以为了节省资源,减少多次连接损耗,连接池的作用 ...
- StackExchange.Redis.DLL 操作redis简化版
直接引入StackExchange.Redis.dll来操作redis using Newtonsoft.Json; using StackExchange.Redis; using System; ...
- StackExchange.Redis.DLL 操作redis加强版
直接引用StackExchange.Redis.dll这一个dll来操作redis App.config配置 <?xml version="1.0" encoding=&qu ...
随机推荐
- 生成Nginx服务器SSL证书和客户端证书
Nginx服务器SSL证书 生成pass key 下面的命令用于生成一个2048bit的pass key, -passout pass:111111 用于避免交互式输入密码 [tomcat@a02 t ...
- Vintage、滚动率、迁移率的应用
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...
- Eclipse创建Maven父子项目
Eclipse创建Maven父子项目 - 木头若愚 - CSDN博客https://blog.csdn.net/jay_1989/article/details/53906995 创建maven项目是 ...
- [转]Vue-Devtools安装配置教程(献给伸手党)
原文地址:https://blog.csdn.net/weixin_38654336/article/details/80790698 可以先看视频教程:链接 最简便的方法是用FQ来通过google应 ...
- vue---封装request做数据请求
参考文章: https://www.cnblogs.com/qiuchuanji/p/10048805.html https://www.cnblogs.com/XHappyness/p/999387 ...
- (5)Flask项目会员登录页
一.添加登录和登出的路由 修改app/home/views.py内容,增加登录("/login/")和登出("/logout/")的路由: # coding:u ...
- python web开发——django学习(二)第一个django网站运行成功
1.写message_form.html <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- [LeetCode] 337. House Robber III 打家劫舍 III
The thief has found himself a new place for his thievery again. There is only one entrance to this a ...
- [LeetCode] 362. Design Hit Counter 设计点击计数器
Design a hit counter which counts the number of hits received in the past 5 minutes. Each function a ...
- [LeetCode] 459. Repeated Substring Pattern 重复子字符串模式
Given a non-empty string check if it can be constructed by taking a substring of it and appending mu ...