All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.wicp.tams.common.redis.builder.RedisStandaloneBuilderTams Maven / Gradle / Ivy

The newest version!
/*
 * **********************************************************************
 * Copyright (c) 2022 .
 * All rights reserved.
 * 项目名称:common
 * 项目描述:公共的工具集
 * 版权说明:本软件属andy.zhou([email protected])所有。
 * ***********************************************************************
 */
package net.wicp.tams.common.redis.builder;

import java.util.Map;

import org.apache.commons.lang3.Validate;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import net.wicp.tams.common.Conf;
import net.wicp.tams.common.redis.RedisAssit;
import net.wicp.tams.common.redis.pool.JedisPoolTams;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;


@Slf4j
@Data
public class RedisStandaloneBuilderTams {
	private GenericObjectPoolConfig poolConfig;

	private String serverName = "default";

	private int timeout = 0;//启不过时试试Protocol.DEFAULT_TIMEOUT;// 创建池的最大时间

	private final JedisPoolTams jedisPoolTams = new JedisPoolTams();

	private String host = Conf.get("common.redis.redisserver.default.host");

	private int port = Conf.getInt("common.redis.redisserver.default.port");


	
	public void init() {
		Validate.notNull(poolConfig, "需要配置信息");
		poolConfig.setJmxEnabled(true);
		poolConfig.setJmxNamePrefix("jedis-pool");
		if (!jedisPoolTams.isInit()) {
			synchronized (RedisStandaloneBuilderTams.class){
				if (!jedisPoolTams.isInit()) {
					Map data = Conf
							.getAllConfigValues(String.format("%s.%s", "common.redis.redisserver", serverName),true);
					log.info("poolConfig==>"+poolConfig.toString());
					log.info("RedisStandaloneBuilderTams拿到的data=====================================");
					data.forEach((k,v)-> System.out.println(k.concat(":::").concat(v)));
					log.info("host,port,timeout"+host+","+port+","+timeout);
					JedisPool jedisPool = new JedisPool(poolConfig, host, port, timeout,
							data.get("password"),
							RedisAssit.getConfigInt(data, "defaultDb"),
							data.get("clientName"));
					log.info("jedisPool初始化完成");
					jedisPoolTams.setJedisPool(jedisPool);
				}
			}
		}
		log.info("---------------the pool inited---------------");
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy