配置

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和注解实现添加和清空缓存功能的更多相关文章

  1. SpringBoot 结合 Spring Cache 操作 Redis 实现数据缓存

    系统环境: Redis 版本:5.0.7 SpringBoot 版本:2.2.2.RELEASE 参考地址: Redus 官方网址:https://redis.io/ 博文示例项目 Github 地址 ...

  2. spring-boot集成mybatis,用redis做缓存

    网上有很多例子了,执行源码起码有3个,都是各种各样的小问题. 现在做了个小demo,实现spring-boot 用redis做缓存的实例,简单记录下思路,分享下源码. 缓存的实现,分担了数据库的压力, ...

  3. SpringBoot 集成Shiro之使用Redis缓存授权认证信息

    因为用户认证与授权需要从数据库中查询并验证信息,但是对于权限很少改变的情况,这样不断从数据库中查询角色验证权限,对整个系统的开销很大,对数据库压力也随之增大.因此可以将用户认证和授权信息都缓存起来,第 ...

  4. spring data redis RedisTemplate操作redis相关用法

    http://blog.mkfree.com/posts/515835d1975a30cc561dc35d spring-data-redis API:http://docs.spring.io/sp ...

  5. [ecmagent][redis学习][1初识redis] python操作redis

    #1 连接redis # 连接redis -- import redis -- 使用端口连接redis conn = redis.Redis(host=) -- 使用套接字连接 r = redis.R ...

  6. Redis - Python操作Redis

    目录 Python操作Redis 一. Redis安装和基本使用 二. Python操作Redis API使用 1.操作模式 2.连接池 3.Django配置Redis 4.操作 Python操作Re ...

  7. python通过连接池连接redis,操作redis队列

    在每次使用redis都进行连接的话会拉低redis的效率,都知道redis是基于内存的数据库,效率贼高,所以每次进行连接比真正使用消耗的资源和时间还多.所以为了节省资源,减少多次连接损耗,连接池的作用 ...

  8. StackExchange.Redis.DLL 操作redis简化版

    直接引入StackExchange.Redis.dll来操作redis using Newtonsoft.Json; using StackExchange.Redis; using System; ...

  9. StackExchange.Redis.DLL 操作redis加强版

    直接引用StackExchange.Redis.dll这一个dll来操作redis App.config配置 <?xml version="1.0" encoding=&qu ...

随机推荐

  1. 生成Nginx服务器SSL证书和客户端证书

    Nginx服务器SSL证书 生成pass key 下面的命令用于生成一个2048bit的pass key, -passout pass:111111 用于避免交互式输入密码 [tomcat@a02 t ...

  2. Vintage、滚动率、迁移率的应用

    python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...

  3. Eclipse创建Maven父子项目

    Eclipse创建Maven父子项目 - 木头若愚 - CSDN博客https://blog.csdn.net/jay_1989/article/details/53906995 创建maven项目是 ...

  4. [转]Vue-Devtools安装配置教程(献给伸手党)

    原文地址:https://blog.csdn.net/weixin_38654336/article/details/80790698 可以先看视频教程:链接 最简便的方法是用FQ来通过google应 ...

  5. vue---封装request做数据请求

    参考文章: https://www.cnblogs.com/qiuchuanji/p/10048805.html https://www.cnblogs.com/XHappyness/p/999387 ...

  6. (5)Flask项目会员登录页

    一.添加登录和登出的路由 修改app/home/views.py内容,增加登录("/login/")和登出("/logout/")的路由: # coding:u ...

  7. python web开发——django学习(二)第一个django网站运行成功

    1.写message_form.html <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  8. [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 ...

  9. [LeetCode] 362. Design Hit Counter 设计点击计数器

    Design a hit counter which counts the number of hits received in the past 5 minutes. Each function a ...

  10. [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 ...