diff --git a/redisson/src/main/java/org/redisson/RedissonHyperLogLog.java b/redisson/src/main/java/org/redisson/RedissonHyperLogLog.java index f28ba0fec..4abfd0eb7 100644 --- a/redisson/src/main/java/org/redisson/RedissonHyperLogLog.java +++ b/redisson/src/main/java/org/redisson/RedissonHyperLogLog.java @@ -77,7 +77,7 @@ public class RedissonHyperLogLog extends RedissonExpirable implements RHyperL List args = new ArrayList(objects.size() + 1); args.add(getName()); encode(args, objects); - return commandExecutor.writeAsync(getName(), codec, RedisCommands.PFADD, getName(), args.toArray()); + return commandExecutor.writeAsync(getName(), codec, RedisCommands.PFADD, args.toArray()); } @Override diff --git a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java index 5d1396a65..60fac2523 100755 --- a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java @@ -448,6 +448,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { } sentinels.putIfAbsent(key, client); + result.trySuccess(null); } }); return result; diff --git a/redisson/src/test/java/org/redisson/RedissonHyperLogLogTest.java b/redisson/src/test/java/org/redisson/RedissonHyperLogLogTest.java index 5e1e78d9d..7afe517a0 100644 --- a/redisson/src/test/java/org/redisson/RedissonHyperLogLogTest.java +++ b/redisson/src/test/java/org/redisson/RedissonHyperLogLogTest.java @@ -1,11 +1,21 @@ package org.redisson; +import java.util.Arrays; + import org.junit.Assert; import org.junit.Test; import org.redisson.api.RHyperLogLog; public class RedissonHyperLogLogTest extends BaseTest { + @Test + public void testAddAll() { + RHyperLogLog log = redisson.getHyperLogLog("log"); + log.addAll(Arrays.asList(1, 2, 3)); + + Assert.assertEquals(3L, log.count()); + } + @Test public void testAdd() { RHyperLogLog log = redisson.getHyperLogLog("log"); diff --git a/redisson/src/test/java/org/redisson/RedissonTest.java b/redisson/src/test/java/org/redisson/RedissonTest.java index 4e6e71433..6676b305f 100644 --- a/redisson/src/test/java/org/redisson/RedissonTest.java +++ b/redisson/src/test/java/org/redisson/RedissonTest.java @@ -633,6 +633,66 @@ public class RedissonTest { Assert.assertTrue(nodes.pingAll()); } + @Test + public void testSentinelStartup() throws Exception { + RedisRunner.RedisProcess master = new RedisRunner() + .nosave() + .randomDir() + .run(); + RedisRunner.RedisProcess slave1 = new RedisRunner() + .port(6380) + .nosave() + .randomDir() + .slaveof("127.0.0.1", 6379) + .run(); + RedisRunner.RedisProcess slave2 = new RedisRunner() + .port(6381) + .nosave() + .randomDir() + .slaveof("127.0.0.1", 6379) + .run(); + RedisRunner.RedisProcess sentinel1 = new RedisRunner() + .nosave() + .randomDir() + .port(26379) + .sentinel() + .sentinelMonitor("myMaster", "127.0.0.1", 6379, 2) + .run(); + RedisRunner.RedisProcess sentinel2 = new RedisRunner() + .nosave() + .randomDir() + .port(26380) + .sentinel() + .sentinelMonitor("myMaster", "127.0.0.1", 6379, 2) + .run(); + RedisRunner.RedisProcess sentinel3 = new RedisRunner() + .nosave() + .randomDir() + .port(26381) + .sentinel() + .sentinelMonitor("myMaster", "127.0.0.1", 6379, 2) + .run(); + + Thread.sleep(5000); + + Config config = new Config(); + config.useSentinelServers() + .setLoadBalancer(new RandomLoadBalancer()) + .addSentinelAddress(sentinel3.getRedisServerAddressAndPort()).setMasterName("myMaster"); + + long t = System.currentTimeMillis(); + RedissonClient redisson = Redisson.create(config); + assertThat(System.currentTimeMillis() - t).isLessThan(2000L); + redisson.shutdown(); + + sentinel1.stop(); + sentinel2.stop(); + sentinel3.stop(); + master.stop(); + slave1.stop(); + slave2.stop(); + } + // @Test public void testSentinel() { NodesGroup nodes = redisson.getNodesGroup();