/** * Description: <br> * * @author 王伟<br> * @taskId <br> * @param clazz * @param nodeName * @return * @throws CacheException <br> */ @Override public <T> Map<String, T> getNode(Class<T> clazz, String nodeName) throws CacheException { Map<String, T> map = null; try { Map<byte[], byte[]> hmap = cluster.hgetAllBytes(nodeName); if (CommonUtil.isNotEmpty(hmap)) { map = new HashMap<String, T>(); for (Entry<byte[], byte[]> entry : hmap.entrySet()) { map.put(new String(entry.getKey()), SerializationUtil.unserial(clazz, entry.getValue())); } } } catch (UtilException e) { throw new CacheException(e); } catch (Exception e) { throw new CacheException(ErrorCodeDef.CACHE_ERROR_10002, "serial map failed!", e); } return map; }
/** * Description: <br> * * @author 王伟<br> * @taskId <br> * @param nodeName * @param node * @throws CacheException <br> */ @Override public <T> void putNode(String nodeName, Map<String, T> node) throws CacheException { if (CommonUtil.isNotEmpty(node)) { Map<byte[], byte[]> hmap = new HashMap<byte[], byte[]>(); try { for (Entry<String, T> entry : node.entrySet()) { byte[] value = SerializationUtil.serial(entry.getValue()); if (value != null) { hmap.put(entry.getKey().getBytes(), value); } } cluster.hmsetBytes(nodeName, hmap); } catch (UtilException e) { throw new CacheException(e); } catch (Exception e) { throw new CacheException(ErrorCodeDef.CACHE_ERROR_10002, "serial map failed!", e); } } }
/** * Description: <br> * * @author 王伟<br> * @taskId <br> * @param clazz * @param nodeName * @return * @throws CacheException <br> */ @Override public <T> Map<String, T> getNode(Class<T> clazz, String nodeName) throws CacheException { ShardedJedis shardedJedis = null; Map<String, T> map = null; try { shardedJedis = shardedPool.getResource(); Map<byte[], byte[]> hmap = shardedJedis.hgetAll(nodeName.getBytes()); if (CommonUtil.isNotEmpty(hmap)) { map = new HashMap<String, T>(); for (Entry<byte[], byte[]> entry : hmap.entrySet()) { map.put(new String(entry.getKey()), SerializationUtil.unserial(clazz, entry.getValue())); } } } catch (UtilException e) { throw new CacheException(e); } catch (Exception e) { throw new CacheException(ErrorCodeDef.CACHE_ERROR_10002, "serial map failed!", e); } finally { shardedPool.returnResourceObject(shardedJedis); } return map; }
/** * Description: <br> * * @author 王伟<br> * @taskId <br> * @param nodeName * @param node * @throws CacheException <br> */ @Override public <T> void putNode(String nodeName, Map<String, T> node) throws CacheException { if (CommonUtil.isNotEmpty(node)) { ShardedJedis shardedJedis = null; Map<byte[], byte[]> hmap = new HashMap<byte[], byte[]>(); try { shardedJedis = shardedPool.getResource(); for (Entry<String, T> entry : node.entrySet()) { byte[] value = SerializationUtil.serial(entry.getValue()); if (value != null) { hmap.put(entry.getKey().getBytes(), value); } } shardedJedis.hmset(nodeName.getBytes(), hmap); } catch (UtilException e) { throw new CacheException(e); } catch (Exception e) { throw new CacheException(ErrorCodeDef.CACHE_ERROR_10002, "serial map failed!", e); } finally { shardedPool.returnResourceObject(shardedJedis); } } }