diff --git a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java index ba9ff50c..8bd675a3 100644 --- a/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java +++ b/modules/extension/src/main/java/org/springside/modules/nosql/redis/JedisTemplate.java @@ -188,7 +188,6 @@ public class JedisTemplate { public long incr(final String key) { return execute(new JedisAction() { - @Override public Long action(Jedis jedis) { return jedis.incr(key); @@ -198,7 +197,6 @@ public class JedisTemplate { public long decr(final String key) { return execute(new JedisAction() { - @Override public Long action(Jedis jedis) { return jedis.decr(key); @@ -209,7 +207,6 @@ public class JedisTemplate { // ////////////// 关于List /////////////////////////// public void lpush(final String key, final String value) { execute(new JedisActionNoResult() { - @Override public void action(Jedis jedis) { jedis.lpush(key, value); @@ -217,6 +214,16 @@ public class JedisTemplate { }); } + public String rpop(final String key) { + return execute(new JedisAction() { + + @Override + public String action(Jedis jedis) { + return jedis.rpop(key); + } + }); + } + /** * 返回List长度, key不存在时返回0,key类型不是list时抛出异常. */ @@ -284,7 +291,7 @@ public class JedisTemplate { } /** - * 返回List长度, key不存在时返回0,key类型不是sorted set时抛出异常. + * 返回sorted set长度, key不存在时返回0,key类型不是sorted set时抛出异常. */ public long zcard(final String key) { return execute(new JedisAction() { diff --git a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java index 934b0fc3..fbc78216 100644 --- a/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java +++ b/modules/extension/src/test/java/org/springside/modules/nosql/redis/JedisTemplateTest.java @@ -51,4 +51,34 @@ public class JedisTemplateTest { assertThat((long) jedisTemplate.getAsLong(key)).isEqualTo(123L); assertThat((long) jedisTemplate.getAsLong(notExistKey)).isZero(); } + + @Test + public void listActions() { + String key = "test.string.key"; + String value = "123"; + String value2 = "456"; + + // push/pop single element + jedisTemplate.lpush(key, value); + assertThat(jedisTemplate.llen(key)).isEqualTo(1); + assertThat(jedisTemplate.rpop(key)).isEqualTo(value); + + // push/pop two elements + jedisTemplate.lpush(key, value); + jedisTemplate.lpush(key, value2); + assertThat(jedisTemplate.llen(key)).isEqualTo(2); + assertThat(jedisTemplate.rpop(key)).isEqualTo(value); + assertThat(jedisTemplate.rpop(key)).isEqualTo(value2); + + // remove elements + jedisTemplate.lpush(key, value); + jedisTemplate.lpush(key, value); + jedisTemplate.lpush(key, value); + assertThat(jedisTemplate.llen(key)).isEqualTo(3); + assertThat(jedisTemplate.lremOne(key, value)).isTrue(); + assertThat(jedisTemplate.llen(key)).isEqualTo(2); + assertThat(jedisTemplate.lremAll(key, value)).isTrue(); + assertThat(jedisTemplate.llen(key)).isEqualTo(0); + assertThat(jedisTemplate.lremAll(key, value)).isFalse(); + } }