1. Jedis实现了连接Redis集群的操作,但是操作Redis集群的API是JedisCluster,和单机版api不一致 (Jedis);
2. 创建JedisCluster需要一个Set集合,Set集合的每一个元素是HostAndPort; JedisCluster实际上可以根据一个节点的IP和端口号自动发现集群中的其它节点;
代码:
package com.etoak;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import java.util.HashSet;
import java.util.Set;
public class ClusterTest {
public static void main(String[] args) {
//set 集合,用来装集群的ip 和端口的
Set<HostAndPort> nodes = new HashSet<>();
//通过for循环把集群的主机信息装到集合
for (int port = 8001;port<=8006;port++) {
nodes.add(new HostAndPort("192.168.132.139",port));
}
//创建JedisCluster
JedisCluster cluster = new JedisCluster(nodes);
//set k v
cluster.set("name","et2106");
//hset k field value
cluster.hset("user:1","id","1");
cluster.hset("user:1","x","x");
//sadd
cluster.sadd("set","a","b","c");
System.out.println(cluster.get("name"));
cluster.hgetAll("user:1").forEach((k,v)-> System.out.println(k+":"+v));
cluster.smembers("set").forEach(x-> System.out.println(x));
cluster.close();
}
}