配置

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. 工具系列 | 使用Lodop进行WEB打印程序开发

    Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现 复杂打印.控件功能强大,却简单易用,所有调用如同JavaScript扩展语句. WEB套打可 ...

  2. 关于qemu的二三事(1)————qemu的特殊参数之monitor

    qemu作为一个十分重要的虚拟化工具,提供了丰富的功能/参数来支持虚拟化的各种操作. 下面仅就monitor这个参数或者说是功能来结合自己的实际体验来做个简要介绍. 如何进入qemu的monitor模 ...

  3. nginx日志切割和日志清理

    ##########################日志切割################################1.上传脚本到/usr/local/nginx/logs/下 2.并附执行权 ...

  4. Spring cloud微服务安全实战-7-6自定义metrics监控指标(1)

    自己写代码来定义一个metrics,然后让prmetheus收走,在grafana里面定义一个panel并展示出来. prometheus的四种metrics指标.虽然所有的metrics都是数字,但 ...

  5. windows下用navicat远程链接虚拟机Linux下MySQL数据库(转)

    原文地址:https://www.cnblogs.com/blogforly/p/5997553.html 今天想用navicat远程连接虚拟机中的MySQL数据库,一直连不上,在网上搜索了一下,发现 ...

  6. 解决python写入mysql中datetime类型遇到的问题

    解决python写入mysql中datetime类型遇到的问题 刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于 ...

  7. [LeetCode] 213. House Robber II 打家劫舍 II

    Note: This is an extension of House Robber. After robbing those houses on that street, the thief has ...

  8. Bazel安装及使用入门

    Bazel [文档][https://docs.bazel.build/versions/1.1.0/bazel-overview.html] MacOS安装 brew tap bazelbuild/ ...

  9. eNSP上配置RIPv2的认证

    实验拓扑图如下 首先我们对各个路由器及终端PC进行基本ip设置 然后我们在路由器上设置RIPv2协议  并添加要通告的网段 然后我们查看路由表查看路由器已经学到的路由 接下来我们用R3模拟攻击者 通过 ...

  10. seaborn做横向条形图

    数据格式如下 这里选择fold值最大的前20个作图进行展示 代码如下 import seaborn as sns import pandas as pd import numpy as np impo ...