spring集成 JedisCluster 连接 redis3.0 集群

22 篇文章 0 订阅
10 篇文章 0 订阅

maven依赖:

<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>2.8.0</version>
</dependency>

增加spring 配置

<bean name="genericObjectPoolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig" >  
        <property name="maxWaitMillis" value="-1" />  
        <property name="maxTotal" value="1000" />  
        <property name="minIdle" value="8" />  
        <property name="maxIdle" value="100" />  
</bean>  
  
<bean id="jedisCluster" class="xxx.JedisClusterFactory">  
    <property name="timeout" value="300000" />  
    <property name="maxRedirections" value="6" />
     <property name="clusterList" value="172.16.23.27:6379,172.16.23.27:6380" />
    <property name="genericObjectPoolConfig" ref="genericObjectPoolConfig" />
</bean> 

增加java类


import java.util.HashSet;  
import java.util.Properties;  
import java.util.Set;  
import java.util.regex.Pattern;  
  
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;  
import org.springframework.beans.factory.FactoryBean;  
import org.springframework.beans.factory.InitializingBean;  
import org.springframework.core.io.Resource;  
  
import redis.clients.jedis.HostAndPort;  
import redis.clients.jedis.JedisCluster;  
  
public class JedisClusterFactory implements FactoryBean<JedisCluster>, InitializingBean {  
 
  
    private JedisCluster jedisCluster;  
    private Integer timeout;  
    private Integer maxRedirections;  
    private GenericObjectPoolConfig genericObjectPoolConfig;  
    private String clusterList;
  
    @Override  
    public JedisCluster getObject() throws Exception {  
        return jedisCluster;  
    }  
  
    @Override  
    public Class<? extends JedisCluster> getObjectType() {  
        return (this.jedisCluster != null ? this.jedisCluster.getClass() : JedisCluster.class);  
    }  
  
    @Override  
    public boolean isSingleton() {  
        return true;  
    }  
  
  
  
   	private Set<HostAndPort> parseHostAndPort() throws Exception {
		try {
			Set<HostAndPort> haps = new HashSet<HostAndPort>();
			String[] clusterListArray = clusterList.split(",");
			for (String hostport : clusterListArray) {
				String[] ipAndPort = hostport.split(":");
				HostAndPort hap = new HostAndPort(ipAndPort[0], Integer.parseInt(ipAndPort[1]));
				haps.add(hap);
			}
			return haps;
		} catch (IllegalArgumentException ex) {
			ex.printStackTrace();
			throw ex;
		} catch (Exception ex) {
			ex.printStackTrace();
			throw new Exception("解析 jedis 配置文件失败", ex);
	

      
    @Override  
    public void afterPropertiesSet() throws Exception {  
        Set<HostAndPort> haps = this.parseHostAndPort();  
          
        jedisCluster = new JedisCluster(haps, timeout, maxRedirections,genericObjectPoolConfig);  
          
    }  

    public void setTimeout(int timeout) {  
        this.timeout = timeout;  
    }  
  
    public void setMaxRedirections(int maxRedirections) {  
        this.maxRedirections = maxRedirections;  
    }  
  
 	public void setClusterList(String clusterList) {
		this.clusterList = clusterList;
	}
  
    public void setGenericObjectPoolConfig(GenericObjectPoolConfig genericObjectPoolConfig) {  
        this.genericObjectPoolConfig = genericObjectPoolConfig;  
    }  
  
}  

到此配置完成
使用时,直接注入即可, 如下所示:
 
@Autowired
JedisCluster jedisCluster;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值