springboot使用redis的配置application.yml连接池以及存取
第一步:添加pom文件依赖:
<!-- redis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
第二步:配置application文件
jedis :
pool :
host : 127.0.0.1
port : 6379
config :
maxTotal: 100
maxIdle: 10
maxWaitMillis : 100000
第三步:读取配置:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; @Configuration
public class RedisConfiguration { @Bean(name= "jedis.pool")
@Autowired
public JedisPool jedisPool(@Qualifier("jedis.pool.config") JedisPoolConfig config,
@Value("${jedis.pool.host}")String host,
@Value("${jedis.pool.port}")int port) {
return new JedisPool(config, host, port);
} @Bean(name= "jedis.pool.config")
public JedisPoolConfig jedisPoolConfig (@Value("${jedis.pool.config.maxTotal}")int maxTotal,
@Value("${jedis.pool.config.maxIdle}")int maxIdle,
@Value("${jedis.pool.config.maxWaitMillis}")int maxWaitMillis) {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(maxTotal);
config.setMaxIdle(maxIdle);
config.setMaxWaitMillis(maxWaitMillis);
return config;
} }
第四步:调用工具类demo
import java.util.HashSet;
import java.util.Set; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool; /**
*
* @author Zhangyf
* @param <T>
*
*/
@Component
public class RedisClient<T> { @Autowired
private JedisPool jedisPool; public void set(String key, String value) throws Exception {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.set(key, value);
} finally {
//返还到连接池
jedis.close();
}
} public String get(String key) throws Exception { Jedis jedis = null;
try {
jedis = jedisPool.getResource();
return jedis.get(key);
} finally {
//返还到连接池
jedis.close();
}
} public void setobj(String key, T value) throws Exception {
Jedis jedis = null;
try {
Set<T> set = new HashSet<T>();
set.add(value);
jedis = jedisPool.getResource();
jedis.sadd(key, String.valueOf(set));
} finally {
//返还到连接池
jedis.close();
}
}
}
第五步:存取demo:
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import com.alibaba.fastjson.JSON; import yxm.zyf.love.domian.RoomDO;
import yxm.zyf.love.mapper.RoomMapper;
import yxm.zyf.love.redistool.RedisClient;
import yxm.zyf.love.utils.LoggerUtil;
import yxm.zyf.love.utils.StringUtil;
import yxm.zyf.love.utils.URLencord;
import yxm.zyf.love.vo.payVo; @RestController
public class hospitalpay {
private final static Logger logger = Logger.getLogger(hospitalpay.class);//给类初始化日志对象 @Autowired
private RoomMapper roomMapper; @Autowired
private RedisClient redisClinet; @ResponseBody
@RequestMapping(value = "room")
public RoomDO room() {
RoomDO roomdo = null;
try {
roomdo = JSON.parseObject(redisClinet.get("room"), RoomDO.class);
if (roomdo == null) {
roomdo = roomMapper.selectByPrimaryKey(1);
redisClinet.set("room", JSON.toJSONString(roomdo));
}
} catch (Exception e) {
e.printStackTrace();
}
LoggerUtil.info(logger, "出参roomdo:{0}", roomdo);//打印info级别的日志
System.out.println(roomdo);
return roomdo;
}
}
springboot使用redis的配置application.yml连接池以及存取的更多相关文章
- Springboot 配置 application.yml 连接MySQL数据库
1.在pom.xml的<dependencies></dependencies>标签中中加入以下依赖 <dependency> <groupId>org ...
- Spring Boot为我们准备了最佳的数据库连接池方案,只需要在属性文件(例如application.properties)中配置需要的连接池参数即可。
Spring Boot为我们准备了最佳的数据库连接池方案,只需要在属性文件(例如application.properties)中配置需要的连接池参数即可.
- spring boot配置druid数据连接池
Druid是阿里巴巴开源项目中一个数据库连接池. Druid是一个jdbc组合,包含三个部分, 1.DruidDriver代理Driver,能够提供基于Filter-Chain模式得插件体系2.Dru ...
- Spring(Bean)4 配置数据源、连接池
<!-- 配置数据源 Mysql c3p0: 连接池. <bean id="dataSource" class="com.mchange.v2.c3p0.Co ...
- Spring系列 之数据源的配置 数据库 数据源 连接池的区别
Spring系列之数据源的配置 数据源,连接池,数据库三者的区别 连接池:这个应该都学习过,比如c3p0,druid等等,连接池的作用是为了提高程序的效率,因为频繁的去创建,关闭数据库连接,会对性能有 ...
- springboot使用redis(从配置到实战)
概述 springboot通常整合redis,采用的是RedisTemplate的形式,除了这种形式以外,还有另外一种形式去整合,即采用spring支持的注解进行访问缓存. 准备工作 pom.xml ...
- SpringBoot启动如何加载application.yml配置文件
一.前言 在spring时代配置文件的加载都是通过web.xml配置加载的(Servlet3.0之前),可能配置方式有所不同,但是大多数都是通过指定路径的文件名的形式去告诉spring该加载哪个文件: ...
- redis-手写redis切片和非切片连接池并注入springboot中
spring-data整合了redispool, 并提供redisTemplate使用, 但有时需要用到shradedJedisPool, 就需要手动注入了 手写redispool并注入springb ...
- SpringBoot 配置阿里巴巴Druid连接池
在Spring Boot下默认提供了若干种可用的连接池(dbcp,dbcp2, tomcat, hikari),当然并不支持Druid,Druid来自于阿里系的一个开源连接池,它提供了非常优秀的监控功 ...
随机推荐
- P5091 【模板】欧拉定理
思路 欧拉定理 当a与m互质时 \[ a^ {\phi (m)} \equiv 1 \ \ (mod\ m) \] 扩展欧拉定理 当a与m不互质且\(b\ge \phi(m)\)时, \[ a^b \ ...
- ToString()格式和用法大全,C#实现保留两位小数的方法
C,货币,2.5.ToString("C"),¥2.50.D,十进制数,25.ToString("D5"),00025.E,科学型,25000.ToString ...
- Linux命令1——a
addUser: -c:备注 -d:登陆目录 -e:有效期限 -f:缓冲天数 -g:组 -b:用户目录 -G:附加组 -s:制定使用默认的shell -u:指定用户ID -r:建立系统账号 -M:不自 ...
- 洛谷p1732 活蹦乱跳的香穗子 二维DP
今天不BB了,直接帖原题吧 地址>>https://www.luogu.org/problem/show?pid=1732<< 题目描述 香穗子在田野上调蘑菇!她跳啊跳,发现 ...
- 【Java】【图形】
/* 栗子 了解swing */import javax.swing.*;public class test_swing extends JFrame { //继承JFrame顶层容器类(可以添加其他 ...
- python 删除文件夹
只能删除空文件夹,删除非空文件夹会报错 >>> import os >>> os.rmdir("/tmp/ssh-GyoPWOFZ47") Tr ...
- CentOS7下搭建Nginx+PHP7的安装配置
一.安装编译工具及库文件: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 环境要求 nginx是C ...
- java中如何认定一个变量和方法
对于变量,用变量名就可以认定.对于a ,你不能要求它既是int,又是double.这是错误的: 同理,对于方法,它的方法签名是:方法名+参数 通过签名,已经认定一个方法.你不能要求一个方法有多 ...
- TRMM数据在arcgis打开
基本思路:地图配准 1将投影设置为plate carree(world) ,是在投影坐标系统下的世界中选择,当然为了输入坐标方便,设置属性genral中单位为度,显示为度分秒. 2 首先,要知道打开后 ...
- js 高级知识点
在JS中统计函数执行次数与执行时间 详解JS中统计函数执行次数与执行时间 JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript 之间转换 javascript设 ...