| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package com.ydtech.components;
- import com.ydtech.utils.StringUtils;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- import redis.clients.jedis.JedisPool;
- import redis.clients.jedis.JedisPoolConfig;
- /**
- * jedisPool的配置
- *
- * @author: lig
- * @date: 2023年03月13日 0013
- */
- @Component
- public class MyJedisPoolConfig {
- private MyJedisPoolConfig() {
- }
- //redis主机的ip
- private static String host;
- //redis主机的端口号
- private static int port;
- //登录口令
- private static String auth;
- /**
- * 连接超时和读写超时(单位ms)
- * 读写超时即:redis对该命令执行时间太长,超过设定时间后就放弃本次请求
- */
- private static int connAndReadWriteTimeOut;
- /**
- * 通过非静态的setter来给静态的属性赋值
- *
- * @param redisHost
- */
- @Value("${spring.redis.host}")
- public void setRedisHost(String redisHost) {
- MyJedisPoolConfig.host = redisHost;
- }
- @Value("${spring.redis.port}")
- public void setRedisPort(int redisPort) {
- MyJedisPoolConfig.port = redisPort;
- }
- @Value("${spring.redis.password}")
- public void setAuth(String redisAuth) {
- MyJedisPoolConfig.auth = redisAuth;
- }
- @Value("${spring.redis.timeOut}")
- public void setAuth(int timeOut) {
- MyJedisPoolConfig.connAndReadWriteTimeOut = timeOut;
- }
- private static class innerClass {
- //静态内部类保存一个jedisPool的实例
- // private static JedisPool jedisPool = null;
- private static JedisPool jedisPool = new JedisPool(getConfig(), host, port, connAndReadWriteTimeOut, StringUtils.isNotEmpty(auth)?auth:null);
- private static JedisPoolConfig getConfig() {
- JedisPoolConfig poolConfig = new JedisPoolConfig();
- //========= jedisPool的一些配置=============================
- poolConfig.setMaxTotal(10000);//最大连接数
- poolConfig.setMaxIdle(50);//最多空闲数
- poolConfig.setMaxWaitMillis(5 * 1000);//当池中没有连接时,最多等待5秒
- return poolConfig;
- }
- }
- /**
- * 返回jedisPool实例
- *
- * @return
- */
- public static JedisPool getJedisPool() {
- // if(null == innerClass.jedisPool){
- // String o = StringUtils.isNotEmpty(auth)?null:auth;
- // innerClass.jedisPool = new JedisPool(innerClass.getConfig(), host, port, connAndReadWriteTimeOut, o);
- // }
- return innerClass.jedisPool;
- }
- }
|