@Before public void setUp() throws InterruptedException { node1 = new Jedis(nodeInfo1.getHost(), nodeInfo1.getPort()); node1.connect(); node1.flushAll(); node2 = new Jedis(nodeInfo2.getHost(), nodeInfo2.getPort()); node2.connect(); node2.flushAll(); node3 = new Jedis(nodeInfo3.getHost(), nodeInfo3.getPort()); node3.connect(); node3.flushAll(); node4 = new Jedis(nodeInfo4.getHost(), nodeInfo4.getPort()); node4.connect(); node4.flushAll(); nodeSlave2 = new Jedis(nodeInfoSlave2.getHost(), nodeInfoSlave2.getPort()); nodeSlave2.connect(); nodeSlave2.flushAll(); // ---- configure cluster // add nodes to cluster node1.clusterMeet(localHost, nodeInfo2.getPort()); node1.clusterMeet(localHost, nodeInfo3.getPort()); // split available slots across the three nodes int slotsPerNode = JedisCluster.HASHSLOTS / 3; int[] node1Slots = new int[slotsPerNode]; int[] node2Slots = new int[slotsPerNode + 1]; int[] node3Slots = new int[slotsPerNode]; for (int i = 0, slot1 = 0, slot2 = 0, slot3 = 0; i < JedisCluster.HASHSLOTS; i++) { if (i < slotsPerNode) { node1Slots[slot1++] = i; } else if (i > slotsPerNode * 2) { node3Slots[slot3++] = i; } else { node2Slots[slot2++] = i; } } node1.clusterAddSlots(node1Slots); node2.clusterAddSlots(node2Slots); node3.clusterAddSlots(node3Slots); JedisClusterTestUtil.waitForClusterReady(node1, node2, node3); }
@Override public void run() { RedisListener rl = new RedisListener(); jedis = jedisPool.getResource(); jedis.connect(); logger.trace("Redis Subscriber ({}): subscribing to {}.", id, channel); jedis.subscribe(rl, channel); logger.debug("Redis Subscriber ({}): Exiting.", id); setComplete(); }
@Override public void run() { logger.debug("RedisPublisher: {} Starting.", id); Jedis jedis = jedisPool.getResource(); jedis.connect(); logger.debug("RedisPublisher: {} connected.", id); for (int i = 0; i < testCount; i++) { jedis.publish(channel, REDIS_PAYLOAD); tallyMessage(); } logger.debug("Redis Publisher ({}) : Published {} messages", id, testCount); jedis.disconnect(); setComplete(); }