Merge branch 'mrniko/master'

pull/400/head
jackygurui 9 years ago
commit bd16e4bb6c

@ -230,7 +230,10 @@ public class RedissonSetCache<V> extends RedissonExpirable implements RSetCache<
public Future<Set<V>> readAllAsync() {
return commandExecutor.evalReadAsync(getName(), codec, RedisCommands.EVAL_SET,
"local expireHead = redis.call('zrange', KEYS[2], 0, 0, 'withscores');" +
"local keys = redis.call('hkeys', KEYS[1]);" +
"local keys = redis.call('hkeys', KEYS[1]); "
+ "if #keys == 0 then "
+ "return {}; "
+ "end; " +
"local maxDate = ARGV[1]; " +
"local minExpireDate = 92233720368547758;" +
"if #expireHead == 2 and tonumber(expireHead[2]) <= tonumber(maxDate) then " +
@ -250,7 +253,10 @@ public class RedissonSetCache<V> extends RedissonExpirable implements RSetCache<
private Future<List<Object>> readAllasListAsync() {
return commandExecutor.evalReadAsync(getName(), codec, RedisCommands.EVAL_LIST,
"local expireHead = redis.call('zrange', KEYS[2], 0, 0, 'withscores');" +
"local keys = redis.call('hkeys', KEYS[1]);" +
"local keys = redis.call('hkeys', KEYS[1]); " +
"if #keys == 0 then "
+ "return {}; " +
"end; " +
"local maxDate = ARGV[1]; " +
"local minExpireDate = 92233720368547758;" +
"if #expireHead == 2 and tonumber(expireHead[2]) <= tonumber(maxDate) then " +
@ -310,8 +316,8 @@ public class RedissonSetCache<V> extends RedissonExpirable implements RSetCache<
return commandExecutor.evalWriteAsync(getName(), codec, RedisCommands.EVAL_BOOLEAN,
"redis.call('zadd', KEYS[2], ARGV[1], ARGV[3]); " +
"if redis.call('hexists', KEYS[1], ARGV[3]) == 0 then " +
"redis.call('hset', KEYS[1], ARGV[3], ARGV[2]); " +
"return 1; " +
"redis.call('hset', KEYS[1], ARGV[3], ARGV[2]); " +
"return 1; " +
"end;" +
"return 0; ",
Arrays.<Object>asList(getName(), getTimeoutSetName()), timeoutDate, objectState, key);

@ -24,10 +24,12 @@ import io.netty.util.concurrent.Future;
/**
* Interface for using pipeline feature.
*
* <p/>
* All method invocations on objects
* from this interface are batched to separate queue and could be executed later
* with <code>execute()</code> or <code>executeAsync()</code> methods.
* <p/>
* Please be ware, atomicity <b>is not</b> guaranteed.
*
*
* @author Nikita Koksharov

@ -1,5 +1,7 @@
package org.redisson;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
@ -9,9 +11,6 @@ import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import static org.assertj.core.api.Assertions.*;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.junit.Assert;
import org.junit.Test;
import org.redisson.codec.MsgPackJacksonCodec;
@ -33,6 +32,12 @@ public class RedissonSetCacheTest extends BaseTest {
}
@Test
public void testEmptyReadAll() {
RSetCache<Integer> set = redisson.getSetCache("set");
assertThat(set.readAll()).isEmpty();
}
@Test
public void testAddBean() throws InterruptedException, ExecutionException {
SimpleBean sb = new SimpleBean();
@ -46,11 +51,11 @@ public class RedissonSetCacheTest extends BaseTest {
public void testAddExpire() throws InterruptedException, ExecutionException {
RSetCache<String> set = redisson.getSetCache("simple3");
set.add("123", 1, TimeUnit.SECONDS);
Assert.assertThat(set, Matchers.contains("123"));
assertThat(set).contains("123");
Thread.sleep(1000);
Assert.assertFalse(set.contains("123"));
assertThat(set).doesNotContain("123");
}
@Test
@ -93,14 +98,14 @@ public class RedissonSetCacheTest extends BaseTest {
Assert.assertTrue(set.remove(1));
Assert.assertFalse(set.contains(1));
Assert.assertThat(set, Matchers.containsInAnyOrder(3, 7));
assertThat(set).containsOnly(3, 7);
Assert.assertFalse(set.remove(1));
Assert.assertThat(set, Matchers.containsInAnyOrder(3, 7));
assertThat(set).containsOnly(3, 7);
Assert.assertTrue(set.remove(3));
Assert.assertFalse(set.contains(3));
Assert.assertThat(set, Matchers.contains(7));
assertThat(set).containsOnly(7);
Assert.assertEquals(1, set.size());
}
@ -122,7 +127,7 @@ public class RedissonSetCacheTest extends BaseTest {
}
}
Assert.assertThat(set, Matchers.containsInAnyOrder("1", "3"));
assertThat(set).contains("1", "3");
int iteration = 0;
for (Iterator<String> iterator = set.iterator(); iterator.hasNext();) {
@ -172,7 +177,7 @@ public class RedissonSetCacheTest extends BaseTest {
}
Assert.assertTrue(set.retainAll(Arrays.asList(1, 2)));
Assert.assertThat(set, Matchers.containsInAnyOrder(1, 2));
assertThat(set).containsOnly(1, 2);
Assert.assertEquals(2, set.size());
}
@ -218,10 +223,10 @@ public class RedissonSetCacheTest extends BaseTest {
Thread.sleep(1000);
MatcherAssert.assertThat(Arrays.asList(set.toArray()), Matchers.<Object>containsInAnyOrder("1", "4", "5", "3"));
assertThat(set.toArray()).containsOnly("1", "4", "5", "3");
String[] strs = set.toArray(new String[0]);
MatcherAssert.assertThat(Arrays.asList(strs), Matchers.containsInAnyOrder("1", "4", "5", "3"));
assertThat(strs).containsOnly("1", "4", "5", "3");
}
@Test
@ -300,7 +305,7 @@ public class RedissonSetCacheTest extends BaseTest {
set.add(2);
Assert.assertFalse(set.retainAll(Arrays.asList(1, 2))); // nothing changed
Assert.assertThat(set, Matchers.containsInAnyOrder(1, 2));
assertThat(set).containsOnly(1, 2);
}
@Test
@ -314,7 +319,7 @@ public class RedissonSetCacheTest extends BaseTest {
Thread.sleep(1000);
MatcherAssert.assertThat(cache, Matchers.contains("0", "2", "3"));
assertThat(cache).contains("0", "2", "3");
}
@Test

@ -1,5 +1,7 @@
package org.redisson;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
@ -8,8 +10,6 @@ import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.junit.Assert;
import org.junit.Test;
import org.redisson.core.RSet;
@ -39,10 +39,10 @@ public class RedissonSetTest extends BaseTest {
set.add(2);
set.add(3);
MatcherAssert.assertThat(set.removeRandom(), Matchers.isOneOf(1, 2, 3));
MatcherAssert.assertThat(set.removeRandom(), Matchers.isOneOf(1, 2, 3));
MatcherAssert.assertThat(set.removeRandom(), Matchers.isOneOf(1, 2, 3));
Assert.assertNull(set.removeRandom());
assertThat(set.removeRandom()).isIn(1, 2, 3);
assertThat(set.removeRandom()).isIn(1, 2, 3);
assertThat(set.removeRandom()).isIn(1, 2, 3);
assertThat(set.removeRandom()).isNull();
}
@Test
@ -90,14 +90,14 @@ public class RedissonSetTest extends BaseTest {
Assert.assertTrue(set.removeAsync(1).get());
Assert.assertFalse(set.contains(1));
Assert.assertThat(set, Matchers.containsInAnyOrder(3, 7));
assertThat(set).containsOnly(3, 7);
Assert.assertFalse(set.removeAsync(1).get());
Assert.assertThat(set, Matchers.containsInAnyOrder(3, 7));
assertThat(set).containsOnly(3, 7);
set.removeAsync(3).get();
Assert.assertFalse(set.contains(3));
Assert.assertThat(set, Matchers.contains(7));
assertThat(set).contains(7);
}
@Test
@ -116,7 +116,7 @@ public class RedissonSetTest extends BaseTest {
}
}
Assert.assertThat(list, Matchers.containsInAnyOrder("1", "4", "5", "3"));
assertThat(list).containsOnly("1", "4", "5", "3");
int iteration = 0;
for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
@ -163,7 +163,7 @@ public class RedissonSetTest extends BaseTest {
set.add(1L);
set.add(2L);
Assert.assertThat(set, Matchers.containsInAnyOrder(1L, 2L));
assertThat(set).containsOnly(1L, 2L);
}
@Test
@ -174,7 +174,7 @@ public class RedissonSetTest extends BaseTest {
}
Assert.assertTrue(set.retainAll(Arrays.asList(1, 2)));
Assert.assertThat(set, Matchers.containsInAnyOrder(1, 2));
assertThat(set).containsOnly(1, 2);
Assert.assertEquals(2, set.size());
}
@ -217,10 +217,10 @@ public class RedissonSetTest extends BaseTest {
set.add("5");
set.add("3");
MatcherAssert.assertThat(Arrays.asList(set.toArray()), Matchers.<Object>containsInAnyOrder("1", "2", "4", "5", "3"));
assertThat(set.toArray()).containsOnly("1", "2", "4", "5", "3");
String[] strs = set.toArray(new String[0]);
MatcherAssert.assertThat(Arrays.asList(strs), Matchers.containsInAnyOrder("1", "4", "2", "5", "3"));
assertThat(strs).containsOnly("1", "2", "4", "5", "3");
}
@Test
@ -286,7 +286,7 @@ public class RedissonSetTest extends BaseTest {
set.add(2);
Assert.assertFalse(set.retainAll(Arrays.asList(1, 2))); // nothing changed
Assert.assertThat(set, Matchers.containsInAnyOrder(1, 2));
assertThat(set).containsOnly(1, 2);
}
@Test
@ -300,10 +300,10 @@ public class RedissonSetTest extends BaseTest {
Assert.assertTrue(set.move("otherSet", 1));
Assert.assertEquals(1, set.size());
Assert.assertThat(set, Matchers.contains(2));
assertThat(set).contains(2);
Assert.assertEquals(1, otherSet.size());
Assert.assertThat(otherSet, Matchers.contains(1));
assertThat(otherSet).contains(1);
}
@Test

Loading…
Cancel
Save