SpringBoot配置Redis连接池
来源:互联网 发布:2017流行语言网络词 编辑:程序博客网 时间:2024/06/02 05:30
首先是redis各个参数的配置,在 application-dev.properties中配置如下:
#redis配置redis.server.host=192.168.50.162redis.server.port=6379redis.server.password=passwordredis.server.timeOut=5000redis.server.maxIdle=50redis.server.maxWaitMillis=5000redis.server.maxTotal=500
对 redis 配置参数进行读取和绑定,配置属性注入到 JedisProperties
import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = JedisProperties.JEDIS_PREFIX)public class JedisProperties { public static final String JEDIS_PREFIX = "redis.server"; private String host; private int port; private String password; private int maxTotal; private int maxIdle; private int maxWaitMillis; private int timeOut; public int getTimeOut() { return timeOut; } public void setTimeOut(int timeOut) { this.timeOut = timeOut; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } public int getMaxTotal() { return maxTotal; } public void setMaxTotal(int maxTotal) { this.maxTotal = maxTotal; } public int getMaxIdle() { return maxIdle; } public void setMaxIdle(int maxIdle) { this.maxIdle = maxIdle; } public int getMaxWaitMillis() { return maxWaitMillis; } public void setMaxWaitMillis(int maxWaitMillis) { this.maxWaitMillis = maxWaitMillis; }}
配置了 Redis 连接池之后,将 Redis 连接池 注入到 RedisClient 中,并生成 RedisClient Bean
import com.mljr.auth.config.properties.JedisProperties;import com.mljr.auth.util.RedisClient;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;@Configuration@EnableConfigurationProperties(JedisProperties.class)@ConditionalOnClass(RedisClient.class)public class JedisConfig { private Logger logger = LoggerFactory.getLogger(JedisConfig.class); @Autowired private JedisProperties prop; @Bean(name = "jedisPool") public JedisPool jedisPool() { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(prop.getMaxTotal()); config.setMaxIdle(prop.getMaxIdle()); config.setMaxWaitMillis(prop.getMaxWaitMillis()); return new JedisPool(config, prop.getHost(), prop.getPort(), prop.getTimeOut(), prop.getPassword()); } @Bean @ConditionalOnMissingBean(RedisClient.class) public RedisClient redisClient(@Qualifier("jedisPool") JedisPool pool) { logger.info("初始化……Redis Client==Host={},Port={}", prop.getHost(), prop.getPort()); RedisClient redisClient = new RedisClient(); redisClient.setJedisPool(pool); return redisClient; }}
配置一些常用的 redis 的操作:
import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;public class RedisClient { private JedisPool jedisPool; public void set(String key, Object value) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, value.toString()); }catch (Exception e){ e.printStackTrace(); }finally { jedis.close(); } } /** * 设置过期时间 * @param key * @param value * @param exptime * @throws Exception */ public void setWithExpireTime(String key, String value, int exptime) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, value, "NX", "EX", 300); } catch (Exception e){ e.printStackTrace(); }finally { jedis.close(); } } public String get(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.get(key); } catch (Exception e){ e.printStackTrace(); }finally { if (jedis != null) jedis.close(); } return null; } public JedisPool getJedisPool() { return jedisPool; } public void setJedisPool(JedisPool jedisPool) { this.jedisPool = jedisPool; }}
大功告成,使用注解的方式引入就可以使用了
@Autowired private RedisClient redisClient; .... .... ....
阅读全文
0 0
- SpringBoot配置Redis连接池
- springboot配置多个redis连接
- 十七、SpringBoot配置连接池
- SpringBoot--配置Druid连接池
- Redis 连接池配置
- Redis 连接池配置
- redis连接池配置
- SpringBoot学习-(四)SpringBoot配置Druid连接池
- springboot连接redis单机版
- Redis连接池参数配置
- 五、SpringBoot JPA 配置redis
- springboot之redis的配置
- SpringBoot redis Session 域配置
- Redis在SpringBoot中的配置
- springboot配置Redis主从服务
- Springboot+Redis 配置和使用
- Druid连接池以及在springboot下配置
- SpringBoot下Druid连接池的使用配置
- Python的30个编程技巧
- StringBuffer类的常用方法
- Django框架学习笔记(13.获取单表单数据的三种方式)
- PHP并行查询MySQL
- Meterpreter常用命令介绍
- SpringBoot配置Redis连接池
- 关于对equals的源码分析
- java语言选择排序详解
- ImportError: No module named redis 安装redis库
- Java Proxy动态代理浅析
- 作业简单的动态链表
- Redis初窥:Hash操作常用命令
- 设计模式—适配器模式
- leet34[medium]---Search for a Range