properties配置redis分片的连接并交给spring容器管理

  • redis.properties
#添加单台redies配置
redis.host=192.168.126.129
redis.port=6379
redis.auth=123456
#配置多台redis
redis.nodes=192.168.126.129:6379:123456,192.168.126.129:6380:123456,192.168.126.129:6381:123456
  • JedisConfig.java
package com.jt.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;

import java.util.ArrayList;
import java.util.List;

@Configuration
@PropertySource("classpath:/properties/redis.properties")
public class JedisConfig {
	
	
	@Value("${redis.host}")
	private String host;
	@Value("${redis.port}")
	private Integer port;
	@Value("${redis.auth}")
	private String paw;
	
	@Value("${redis.nodes}")
	private String nodes;
	
	//配置单台的redis
	@Bean
	//@Scope("prototype")//设置为多例模式
	public Jedis jedis() {
		Jedis jd = new Jedis(host, port);
		jd.auth(paw);
		return jd;
	}
	//配置redis分片连接
	@Bean
	public ShardedJedis ShardedJedis() {
		String[] node = nodes.split(",");
		List<JedisShardInfo> list = new ArrayList();
		for (String nod : node) {
			String host = nod.split(":")[0];
			int port = Integer.parseInt(nod.split(":")[1]);
			String password = "";
			//判断是否有密码字段
			if (nod.split(":").length > 2) {
				//有密码字段则设置 密码
				password = nod.split(":")[2];
				
			}
			
			JedisShardInfo jedisShardInfo = new JedisShardInfo(host, port);
			//没有密码则直接连接
			if (password != "") {
				jedisShardInfo.setPassword(password);
			}
			
			list.add(jedisShardInfo);
			
		}
		ShardedJedis shardedJedis = new ShardedJedis(list);
		return shardedJedis;
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值