redis cluster 集群连接

redis cluster 集群连接帮助类:


import java.util.HashSet;
import java.util.Set;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;

/**
 * 
 * 
 * @desc 操作redis 的client
 * @author Wallker.Gao
 * @date 2017年3月23日下午7:36:37
 * 
 */

@Service("jedisCluster")
public class JedisClusterFactory implements FactoryBean<JedisCluster>, InitializingBean{
	
	private JedisCluster jedisCluster;
	
	@Value("${redis.cluster.address}")
	private String addresses;
	
	@Value("${redis.cluster.maxWaitMillis}")
	private String maxWaitMillis;
	
	@Value("${redis.cluster.maxTotal}")
	private int maxTotal;
	
	@Value("${redis.cluster.minIdle}")
	private int minIdle;
	
	@Value("${redis.cluster.maxIdle}")
	private int maxIdle;
	
	@Value("${redis.cluster.timeout}")
	private int timeout;
	
	@Value("${redis.cluster.soTimeout}")
	private int soTimeout;
	
	@Value("${redis.cluster.password}")
	private String password;
	
	@Value("${redis.cluster.maxRedirections}")
	private int maxRedirections;
	
	@Override
	public JedisCluster getObject() throws Exception {
		
		return jedisCluster;
	}

	@Override
	public Class<?> getObjectType() {
		return (this.jedisCluster != null ? this.jedisCluster.getClass() : JedisCluster.class);
	}

	@Override
	public boolean isSingleton() {
		return true;
	}

	
	public JedisClusterFactory(){
		/*Set<HostAndPort> hostSet = new HashSet<>();
		String [] addressArray = addresses.split(",");
		for(String address : addressArray){
			String host = address.substring(0, address.indexOf(":"));
			String port = address.substring(address.indexOf(":"));
			HostAndPort hosts = new HostAndPort(host, Integer.parseInt(port));
			hostSet.add(hosts);
		}
		GenericObjectPoolConfig  genericPoolConfig = new GenericObjectPoolConfig();
		genericPoolConfig.setMaxWaitMillis(Long.parseLong(maxWaitMillis));
		genericPoolConfig.setMaxTotal(maxTotal);
		genericPoolConfig.setMinIdle(minIdle);
		genericPoolConfig.setMaxIdle(maxIdle);
		jedisCluster = new JedisCluster(hostSet, timeout, soTimeout, maxRedirections, password, genericPoolConfig);*/
		
	}

	@Override
	public void afterPropertiesSet() throws Exception {
		Set<HostAndPort> hostSet = new HashSet<>();
		String [] addressArray = addresses.split(",");
		for(String address : addressArray){
			String host = address.substring(0, address.indexOf(":"));
			String port = address.substring(address.indexOf(":")+1);
			HostAndPort hosts = new HostAndPort(host, Integer.parseInt(port));
			hostSet.add(hosts);
		}
		GenericObjectPoolConfig  genericPoolConfig = new GenericObjectPoolConfig();
		genericPoolConfig.setMaxWaitMillis(Long.parseLong(maxWaitMillis));
		genericPoolConfig.setMaxTotal(maxTotal);
		genericPoolConfig.setMinIdle(minIdle);
		genericPoolConfig.setMaxIdle(maxIdle);
		jedisCluster = new JedisCluster(hostSet, timeout, soTimeout, maxRedirections, password, genericPoolConfig);
	}
	
}
                             

参数:

redis.cluster.address=192.168.1.33:6371,192.168.1.34:6373,192.168.1.35:6375,192.168.1.33:6374,192.168.1.34:6376,192.168.1.35:6372
redis.cluster.maxWaitMillis=-1
redis.cluster.maxTotal=1000
redis.cluster.minIdle=8
redis.cluster.maxIdle=100
redis.cluster.timeout=1000
redis.cluster.soTimeout=800
redis.cluster.password=chiwen@1234567890DZZG
redis.cluster.maxRedirections=6
redis.cluster.database=1

 

转载于:https://my.oschina.net/gao0516/blog/1586125

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值