1. 在resources/application.properties中添加集群连接参数
spring.redis.cluster.nodes=120.77.172.111:7000,120.77.172.111:7001,120.77.172.111:7002,120.77.172.111:7003,120.77.172.111:7004,120.77.172.111:7005
2. 创建RedisClusterConfig类用来读取集群配置信息
伪代码:
@Configuration
public class RedisConfig{
private RedisPropery redisproperty;
public JedisPoolConfig getConfig(){
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(redisproperty.getPOOL_MAX_ACTIVE);
config.setMaxIdle(redisproperty.get.POOL_MAX_IDLE);
config.setMaxWaitMillis(redisproperty.getPOOL_MAX_WAIT);
config.setMinIdle(redisproperty.get.POOL_MIN_IDLE);
config.setTestOnBorrow(true);
config.setTestOnReturn(true);
}
@Bean
public JedisCluster getJedisCluster(){
// 截取集群节点
String[] cluster = clusterNodes.split(",");
// 创建set集合
Set<HostAndPort> nodes = new HashSet<HostAndPort>();
// 循环数组把集群节点添加到set集合中
for (String node : cluster) {
String[] host = node.split(":");
//添加集群节点
nodes.add(new HostAndPort(host[0], Integer.parseInt(host[1])));
}
JedisCluster jc = new JedisCluster(nodes,getConfig());
return jc;
}
}
3. 使用
@Autowired
private JedisCluster jedisCluster;
jedisCluster.set(prefix + KEY_SPLIT + key, value);
模糊匹配:
TreeSet keys= new TreeSet();
Map<String,jedisPool> nodes = jedisCluster.getClustweNodes();
for(String k:nodes.keyset()){
扫描二维码关注公众号,回复:
1836778 查看本文章
JedisPool jp = nodes.get(k);
Jedis conn = jp.getResource();
keys.addAll(connect.keys(pattern));
}
conn,close();