SpringBoot学习- 5、整合Redis
SpringBoot项目中访问Redis主要有两种方式:JedisPool和RedisTemplate,本文使用JedisPool
1、pom.xml添加dependency
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
<scope>compile</scope>
</dependency>
2、下面封装一个工具类,utils新建JedisPoolUtil,先只封装读写字符串
package com.jgui.utils; import com.jgui.config.RedisConfig;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; /**
* @Author: zhaogaojian
* @Description:
* @Date: Created in 2020/1/821:54
*/
@Component
public class JedisPoolUtil {
private JedisPool jedisPool=null;
@Autowired
private RedisConfig redisConfig;
private JedisPool getJedisPool() {
if(jedisPool==null)
{
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(redisConfig.getPoolMaxTotal());
jedisPoolConfig.setMaxIdle(redisConfig.getPoolMaxIdle());
jedisPoolConfig.setMaxWaitMillis(redisConfig.getPoolMaxWait());
jedisPool=new JedisPool(jedisPoolConfig, redisConfig.getHost(),redisConfig.getPort(),redisConfig.getTimeout()*1000,redisConfig.getPassword(),0);
}
return jedisPool;
}
public String set(String key,String value, int cacheSeconds)
{
String strRet = null;
Jedis jedis =null;
try {
jedis = getJedisPool().getResource();
strRet=jedis.set(key,value);
if (cacheSeconds != 0) {
jedis.expire(key, cacheSeconds);
}
} catch (Exception e) {
//logger.error(e.getMessage(), e);
} finally {
if (jedis != null)
jedis.close(); //注意这里不是关闭连接,在JedisPool模式下,Jedis会被归还给资源池。
}
return strRet;
}
public String get(String key)
{
String strRet=null;
Jedis jedis =null;
try {
jedis = getJedisPool().getResource();
strRet=jedis.get(key);
} catch (Exception e) {
//logger.error(e.getMessage(), e);
} finally {
if (jedis != null)
jedis.close(); //注意这里不是关闭连接,在JedisPool模式下,Jedis会被归还给资源池。
}
return strRet;
}
}
3、Config文件新建RedisConfig
package com.jgui.config; import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component; /**
* @Author: zhaogaojian
* @Description:
* @Date: Created in 2020/1/822:51
*/
@Data
@Component
@ConfigurationProperties(prefix = "redis") //把同类的配置信息自动封装成实体类
public class RedisConfig {
private String host="127.0.0.1";
private Integer port=6379;
private Integer timeout=3; //秒
private String password="123456"; private Integer poolMaxTotal=10;
private Integer poolMaxIdle=10;
private Integer poolMaxWait=3;//秒
}
4、application.properties增加配置节
#--------------------Jedis配置-------------------
redis.host=127.0.0.1
redis.port=6379
#秒
redis.timeout=5
redis.password=123456
redis.poolMaxTotal=10
redis.poolMaxIdle=10
#秒
redis.poolMaxWait=3
5、修改hello进行测试
@Autowired
private JedisPoolUtil jedisPoolUtil;
@RequestMapping("/hello")
public String hello() { String ret=jedisPoolUtil.set("111","123",60);
String ret1=jedisPoolUtil.get("111");
return ret1;
//return userDao.selectByPrimaryKey(1).getRealname();
//return "Hello World11";
}
6、拦截器增加hello排除
public void addInterceptors(InterceptorRegistry registry){
List<String> excludePath = new ArrayList<>();
excludePath.add("/login"); //登录
excludePath.add("/hello"); //测试
registry.addInterceptor(tokenInterceptor)
.addPathPatterns("/**")
.excludePathPatterns(excludePath);
WebMvcConfigurer.super.addInterceptors(registry);
}
7、运行测试,返回123,工作正常

以上参考
https://www.jianshu.com/p/df57fefe0ab7
https://www.jdon.com/51938
https://blog.csdn.net/MRA__S__/article/details/82051538
https://blog.csdn.net/damanchen/article/details/103770222
等
SpringBoot学习- 5、整合Redis的更多相关文章
- SpringBoot学习:整合Redis
项目下载地址:http://download.csdn.NET/detail/aqsunkai/9805821 pom.xml添加对redis的依赖: <!-- https://mvnrepos ...
- SpringBoot学习笔记:Redis缓存
SpringBoot学习笔记:Redis缓存 关于Redis Redis是一个使用ANSI C语言编写的免费开源.支持网络.可基于内存亦可以持久化的日志型.键值数据库.其支持多种存储类型,包括Stri ...
- SpringBoot学习之整合Mybatis
本博客使用IDEA开发工具,通过Maven构建SpringBoot项目,初始化项目添加的依赖有:spring-boot-starter-jdbc.spring-boot-starter-web.mys ...
- 【快学springboot】11.整合redis实现session共享
前言 这里都是基于前面的项目基础上的.springboot整合redis非常的方便,这也是springboot的宗旨,简化配置.这篇文章就教大家如何使用springboot整合redis来实现sess ...
- SpringBoot学习之整合Druid的简单应用
一.Druid介绍 Druid简介 Druid是目前Java语言中最好的数据库连接池之一.结合了 C3P0.DBCP 等 DB 池的优点,同时加入了日志监控.Druid 是一个分布式的.支持实时多维 ...
- SpringBoot缓存篇Ⅱ --- 整合Redis以及序列化机制
一.Redis环境搭建 系统默认是使用ConcurrentMapCacheManager,然后获取和创建ConcurrentMapCache类型的缓存组件,再将数据保存在ConcurrentMap中 ...
- SpringBoot学习之整合Swagger
Swagger介绍 1.什么是Swagger 作为后端程序开发,我们多多少少写过几个后台接口项目,不管是编写手机端接口,还是目前比较火热的前后端分离项目,前端与后端都是由不同的工程师进行开发,那么这之 ...
- redis(Springboot中封装整合redis,java程序如何操作redis的5种基本数据类型)
平常测试redis操作命令,可能用的是cmd窗口 操作redis,记录一下 java程序操作reids, 操作redis的方法 可以用Jedis ,在springboot 提供了两种 方法操作 Red ...
- 25、springboot与缓存整合Redis
默认使用ConcurrentMapCacheManager 将数据保存在下面的Map中 docker: 安装Redis: 查看官方文档: 添加约束 <dependency> <gro ...
- SpringBoot学习:整合Mybatis,使用HikariCP超高性能数据源
一.添加pom依赖jar包: <!--整合mybatis--> <dependency> <groupId>org.mybatis.spring.boot</ ...
随机推荐
- pyinstaller打包报错: RecursionError: maximum recursion depth exceeded 已经解决
看上去似乎是某个库自己递归遍历超过了python的栈高度限制 搜索了一番,很快找到了解决办法: https://stackoverflow.com/questions/38977929/pyinsta ...
- C语言再学习part2-重新认识C语言词汇
迷阳迷阳,无伤吾行.无行郗曲,无伤吾足.—庄子 C语言词汇: 标识符 在程序中的变量名.函数名.标号等等成为标识符.其中标识符相在C中只能是字母A~Z,a~z,数字0~9,下划线(_)组成的字符串,并 ...
- LeetCode 面试题24. 反转链表
题目链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/ 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. ...
- webstrom 2019 注册码(可用 2019年10月14日08:59:18)
K6IXATEF43-eyJsaWNlbnNlSWQiOiJLNklYQVRFRjQzIiwibGljZW5zZWVOYW1lIjoi5o6I5p2D5Luj55CG5ZWGOiBodHRwOi8va ...
- Spring-微服务
项目框架 功能模块介绍 Eureka:https://baike.baidu.com/item/Eureka/22402835?fr=aladdin Ribbon:https://www.jiansh ...
- 关于所学,及JNI问题
上周每天学习Java两个小时,随后两个小时里对教材上的例子进行验证,学会了如何使用Javac对文件进行终端编译,输出,但由于所下载的 jdk版本问题出现了JNI问题,正在尝试解决.并学会了如何使用ec ...
- mac 电脑画图软件相关
sketchbook 免费但是不太好用 sketch, https://www.newasp.net/soft/327640.html 注意:安装前,请开启任何来源.OS X 10.12 及以上版本请 ...
- bootstrap支持ie8 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
做一个在线系统,PC端也要做,但要兼容千恶的IE8[IE6 是万恶,打死我都不会管IE6],IE8 是我底线了md, 在IE8下 bottstrap 错乱,变形,不支持一些属性的问题,下面看了一篇 某 ...
- spring中JdbcTemplate使用
1.maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...
- 【sklearn】Toy datasets上的分类/回归问题 (XGBoost实践)
分类问题 1. 手写数字识别问题 from sklearn.datasets import load_digits digits = load_digits() # 加载手写字符识别数据集 X = d ...