From d6e63fd700d5856abde9f0d143cb019289243811 Mon Sep 17 00:00:00 2001 From: javahongxi Date: Sat, 12 May 2018 07:01:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84RedisService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../redis/client/service/RedisMapService.java | 10 ++++--- .../redis/client/service/RedisService.java | 5 ++++ .../service/impl/RedisListServiceImpl.java | 5 +--- .../service/impl/RedisMapServiceImpl.java | 14 ++++++++++ .../client/service/impl/RedisServiceImpl.java | 26 ++++++++++++------- 5 files changed, 43 insertions(+), 17 deletions(-) diff --git a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/RedisMapService.java b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/RedisMapService.java index e2dc51d2..59af23b6 100644 --- a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/RedisMapService.java +++ b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/RedisMapService.java @@ -15,12 +15,14 @@ public interface RedisMapService { List hMGet(String redisKey, List mapKeys); byte[] hGet(String redisKey, String mapKey); - + long hDel(String redisKey, List mapKeys); - + long hDel(String redisKey, byte[] mapKey); - + boolean hSet(String redisKey, String mapKey, String mapValue); - + + String hGetString(String redisKey, String mapKey); + String hGet(String redisKey, byte[] mapKey); } diff --git a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/RedisService.java b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/RedisService.java index 712d3214..a04c0749 100644 --- a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/RedisService.java +++ b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/RedisService.java @@ -1,6 +1,7 @@ package org.hongxi.whatsmars.redis.client.service; import java.util.Collection; +import java.util.List; import java.util.Set; public interface RedisService { @@ -110,4 +111,8 @@ public interface RedisService { void pubMsg(String channel, Object obj); Set getSet(String key); + + long addSet(String key, String... values); + + List multiGet(Collection keys); } diff --git a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisListServiceImpl.java b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisListServiceImpl.java index e217acda..4106e373 100644 --- a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisListServiceImpl.java +++ b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisListServiceImpl.java @@ -17,9 +17,8 @@ public class RedisListServiceImpl implements RedisListService { private RedisTemplate> redisTemplate; @Override - public long rpush(final byte[] key, final byte[]...values) { + public long rpush(final byte[] key, final byte[]... values) { return redisTemplate.execute(new RedisCallback() { - @Override public Long doInRedis(RedisConnection connection) throws DataAccessException { return connection.rPush(key, values); @@ -38,7 +37,6 @@ public class RedisListServiceImpl implements RedisListService { @Override public List lrange(final byte[] key, final long begin, final long end) { return redisTemplate.execute(new RedisCallback>() { - @Override public List doInRedis(RedisConnection connection) throws DataAccessException { return connection.lRange(key, begin, end); @@ -59,7 +57,6 @@ public class RedisListServiceImpl implements RedisListService { @Override public long del(final byte[] key) { return redisTemplate.execute(new RedisCallback() { - @Override public Long doInRedis(RedisConnection connection) throws DataAccessException { return connection.del(key); diff --git a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisMapServiceImpl.java b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisMapServiceImpl.java index e4a36101..8fbd3c29 100644 --- a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisMapServiceImpl.java +++ b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisMapServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.io.UnsupportedEncodingException; import java.util.List; import java.util.Map; import java.util.Set; @@ -16,6 +17,8 @@ import java.util.Set; @Service("redisMapService") public class RedisMapServiceImpl implements RedisMapService { + private static final String CHARSET = "UTF8"; + @Resource private RedisTemplate> redisTemplate; @@ -112,6 +115,17 @@ public class RedisMapServiceImpl implements RedisMapService { }); } + @Override + public String hGetString(String redisKey, String mapKey) { + byte[] value = hGet(redisKey, mapKey); + try { + return value == null ? null : new String(value, CHARSET); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return null; + } + @Override public String hGet(final String redisKey, final byte[] mapKey) { return redisTemplate.execute(new RedisCallback() { diff --git a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisServiceImpl.java b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisServiceImpl.java index c9b48724..27ab3ae1 100644 --- a/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisServiceImpl.java +++ b/whatsmars-redis/src/main/java/org/hongxi/whatsmars/redis/client/service/impl/RedisServiceImpl.java @@ -20,6 +20,7 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collection; +import java.util.List; import java.util.Set; @Service("redisService") @@ -60,15 +61,16 @@ public class RedisServiceImpl implements RedisService { public boolean set(byte[] key, byte[] value) { return this.set(key, value, 0L); } - + + @Override public boolean set(byte[] key, T value, long activeTime){ ObjectMapper objectMapper = new ObjectMapper(); byte[] b = null; try { b = objectMapper.writeValueAsBytes(value); } catch (JsonProcessingException e) { - e.printStackTrace(); + return false; } return this.set(key, b, activeTime); } @@ -79,11 +81,11 @@ public class RedisServiceImpl implements RedisService { public String doInRedis(RedisConnection connection) throws DataAccessException { try { byte[] value = connection.get(key.getBytes()); - return value == null ? "" : new String(value, CHARSET); + return value == null ? null : new String(value, CHARSET); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return ""; + return null; } }); } @@ -100,13 +102,10 @@ public class RedisServiceImpl implements RedisService { try { return objectMapper.readValue(value, c); } catch (JsonParseException e) { - e.printStackTrace(); } catch (JsonMappingException e) { - e.printStackTrace(); } catch (IOException e) { - e.printStackTrace(); } return null; @@ -117,7 +116,6 @@ public class RedisServiceImpl implements RedisService { @Override public Set matchKeys(String pattern) { return redisTemplate.keys(pattern); - } @Override @@ -145,7 +143,7 @@ public class RedisServiceImpl implements RedisService { public Long doInRedis(RedisConnection connection) throws DataAccessException { long result = 0; for (String key : keys) { - result = connection.del(key.getBytes()); + result += connection.del(key.getBytes()); } return result; } @@ -182,4 +180,14 @@ public class RedisServiceImpl implements RedisService { return stringRedisTemplate.opsForSet().members(key); } + @Override + public long addSet(String key, String... values) { + return stringRedisTemplate.opsForSet().add(key, values); + } + + @Override + public List multiGet(Collection keys) { + return redisTemplate.opsForValue().multiGet(keys); + } + } -- GitLab