From fe6524977f349de302f15effee128ab6346c7313 Mon Sep 17 00:00:00 2001 From: Calvin Date: Fri, 17 Jan 2014 19:08:59 +0800 Subject: [PATCH] =?UTF-8?q?#314=20=E4=BD=BF=E7=94=A8NoSQL=20Unit=E7=9A=84?= =?UTF-8?q?=E5=B5=8C=E5=85=A5=E5=BC=8FRedis=E7=BC=96=E5=86=99=E6=B5=8B?= =?UTF-8?q?=E8=AF=95,=20=20update=20the=20tempate=20return=20code=20to=20I?= =?UTF-8?q?nteger/Long=20to=20support=20null.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/nosql/redis/JedisTemplate.java | 49 ++++++++++++------- .../nosql/redis/JedisTemplateTest.java | 38 ++++++++++++-- 2 files changed, 65 insertions(+), 22 deletions(-) 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 b28ec204..e0a164e0 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 @@ -103,7 +103,7 @@ public class JedisTemplate { /** * 删除key, 如果key存在返回true, 否则返回false。 */ - public boolean del(final String... keys) { + public Boolean del(final String... keys) { return execute(new JedisAction() { @Override @@ -138,19 +138,19 @@ public class JedisTemplate { } /** - * 如果key不存在, 返回0. + * 如果key不存在, 返回null. */ public Long getAsLong(final String key) { String result = get(key); - return result != null ? Long.valueOf(result) : 0; + return result != null ? Long.valueOf(result) : null; } /** - * 如果key不存在, 返回0. + * 如果key不存在, 返回null. */ public Integer getAsInt(final String key) { String result = get(key); - return result != null ? Integer.valueOf(result) : 0; + return result != null ? Integer.valueOf(result) : null; } public void set(final String key, final String value) { @@ -176,7 +176,7 @@ public class JedisTemplate { /** * 如果key还不存在则进行设置,返回true,否则返回false. */ - public boolean setnx(final String key, final String value) { + public Boolean setnx(final String key, final String value) { return execute(new JedisAction() { @Override @@ -186,7 +186,7 @@ public class JedisTemplate { }); } - public long incr(final String key) { + public Long incr(final String key) { return execute(new JedisAction() { @Override public Long action(Jedis jedis) { @@ -195,7 +195,7 @@ public class JedisTemplate { }); } - public long decr(final String key) { + public Long decr(final String key) { return execute(new JedisAction() { @Override public Long action(Jedis jedis) { @@ -227,7 +227,7 @@ public class JedisTemplate { /** * 返回List长度, key不存在时返回0,key类型不是list时抛出异常. */ - public long llen(final String key) { + public Long llen(final String key) { return execute(new JedisAction() { @Override @@ -238,9 +238,9 @@ public class JedisTemplate { } /** - * 删除List中的第一个等于value的元素,value不存在或key不存在时返回0. + * 删除List中的第一个等于value的元素,value不存在或key不存在时返回false. */ - public boolean lremOne(final String key, final String value) { + public Boolean lremOne(final String key, final String value) { return execute(new JedisAction() { @Override public Boolean action(Jedis jedis) { @@ -251,9 +251,9 @@ public class JedisTemplate { } /** - * 删除List中的所有等于value的元素,value不存在或key不存在时返回0. + * 删除List中的所有等于value的元素,value不存在或key不存在时返回false. */ - public boolean lremAll(final String key, final String value) { + public Boolean lremAll(final String key, final String value) { return execute(new JedisAction() { @Override public Boolean action(Jedis jedis) { @@ -265,9 +265,9 @@ public class JedisTemplate { // ////////////// 关于Sorted Set /////////////////////////// /** - * 加入Sorted set, 如果member在Set里已存在,只更新score并返回false,否则返回true. + * 加入Sorted set, 如果member在Set里已存在, 只更新score并返回false, 否则返回true. */ - public boolean zadd(final String key, final String member, final double score) { + public Boolean zadd(final String key, final String member, final double score) { return execute(new JedisAction() { @Override @@ -280,7 +280,7 @@ public class JedisTemplate { /** * 删除sorted set中的元素,成功删除返回true,key或member不存在返回false。 */ - public boolean zrem(final String key, final String member) { + public Boolean zrem(final String key, final String member) { return execute(new JedisAction() { @Override @@ -291,9 +291,22 @@ public class JedisTemplate { } /** - * 返回sorted set长度, key不存在时返回0,key类型不是sorted set时抛出异常. + * 当key不存在时返回null. */ - public long zcard(final String key) { + public Double zscore(final String key, final String member) { + return execute(new JedisAction() { + + @Override + public Double action(Jedis jedis) { + return jedis.zscore(key, member); + } + }); + } + + /** + * 返回sorted set长度, key不存在时返回0. + */ + public Long zcard(final String key) { return execute(new JedisAction() { @Override 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 e9caecf9..4beeddb2 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 @@ -44,12 +44,12 @@ public class JedisTemplateTest { assertThat(jedisTemplate.del(notExistKey)).isFalse(); jedisTemplate.set(key, value); - assertThat((int) jedisTemplate.getAsInt(key)).isEqualTo(123); - assertThat((int) jedisTemplate.getAsInt(notExistKey)).isZero(); + assertThat(jedisTemplate.getAsInt(key)).isEqualTo(123); + assertThat(jedisTemplate.getAsInt(notExistKey)).isNull(); jedisTemplate.set(key, value); - assertThat((long) jedisTemplate.getAsLong(key)).isEqualTo(123L); - assertThat((long) jedisTemplate.getAsLong(notExistKey)).isZero(); + assertThat(jedisTemplate.getAsLong(key)).isEqualTo(123L); + assertThat(jedisTemplate.getAsLong(notExistKey)).isNull(); } @Test @@ -62,6 +62,7 @@ public class JedisTemplateTest { jedisTemplate.lpush(key, value); assertThat(jedisTemplate.llen(key)).isEqualTo(1); assertThat(jedisTemplate.rpop(key)).isEqualTo(value); + assertThat(jedisTemplate.rpop(key)).isNull(); // push/pop two elements jedisTemplate.lpush(key, value); @@ -81,4 +82,33 @@ public class JedisTemplateTest { assertThat(jedisTemplate.llen(key)).isEqualTo(0); assertThat(jedisTemplate.lremAll(key, value)).isFalse(); } + + @Test + public void orderedSetActions() { + String key = "test.orderedSet.key"; + String member = "abc"; + String member2 = "def"; + double score1 = 1; + double score11 = 11; + double score2 = 2; + + // zadd + assertThat(jedisTemplate.zadd(key, member, score1)).isTrue(); + assertThat(jedisTemplate.zadd(key, member2, score2)).isTrue(); + + // zcard + assertThat(jedisTemplate.zcard(key)).isEqualTo(2); + assertThat(jedisTemplate.zcard(key + "not.exist")).isEqualTo(0); + + // zrem + assertThat(jedisTemplate.zrem(key, member2)).isTrue(); + assertThat(jedisTemplate.zcard(key)).isEqualTo(1); + assertThat(jedisTemplate.zrem(key, member2 + "not.exist")).isFalse(); + + // unique & zscore + assertThat(jedisTemplate.zadd(key, member, score11)).isFalse(); + assertThat(jedisTemplate.zcard(key)).isEqualTo(1); + assertThat(jedisTemplate.zscore(key, member)).isEqualTo(score11); + assertThat(jedisTemplate.zscore(key, member + "not.exist")).isNull(); + } }