package com.java110.utils.cache; import com.java110.utils.constant.DomainContant; import com.java110.utils.util.SerializeUtil; import com.java110.entity.mapping.Mapping; import redis.clients.jedis.Jedis; import java.util.List; /** * 映射缓存工具类 * Created by wuxw on 2018/4/14. */ public class MappingCache extends BaseCache { //后缀 用来刷缓存时删除 所有以这个为后缀的数据 public final static String _SUFFIX_MAPPING = "_SUFFIX_MAPPING"; /** * 获取值 * @param domain * @param key * @return */ public static String getValue(String domain,String key){ Jedis redis = null; try { redis = getJedis(); Object object = SerializeUtil.unserialize(redis.get((domain + key+_SUFFIX_MAPPING).getBytes())); if (object == null) { return null; } Mapping mapping = (Mapping) object; return mapping.getValue(); }finally { if(redis != null){ redis.close(); } } } /** * 获取公用域下的key值 * @param key * @return */ public static String getValue(String key){ Mapping mapping = getMapping(key); return mapping == null ? "":mapping.getValue(); } public static Mapping getMapping(String key){ Jedis redis = null; try { redis = getJedis(); Object obj = SerializeUtil.unserialize(redis.get((DomainContant.COMMON_DOMAIN+key+_SUFFIX_MAPPING).getBytes())); if(obj instanceof Mapping){ return (Mapping) obj; } }finally { if(redis != null){ redis.close(); } } return null; } /** * 获取 域下的所有数据 * @param domain * @return */ public static List getValueByDomain(String domain){ Jedis redis = null; try { redis = getJedis(); return SerializeUtil.unserializeList(redis.get((domain+_SUFFIX_MAPPING).getBytes()),Mapping.class); }finally { if(redis != null){ redis.close(); } } } /** * 保存数据 * @param mapping */ public static void setVaule(Mapping mapping){ Jedis redis = null; try { redis = getJedis(); redis.set((mapping.getDomain()+mapping.getKey()+_SUFFIX_MAPPING).getBytes(),SerializeUtil.serialize(mapping)); }finally { if(redis != null){ redis.close(); } } } /** * 保存list 数据 * @param mappings */ public static void setValue(List mappings){ Jedis redis = null; try { redis = getJedis(); redis.set((mappings.get(0).getDomain()+_SUFFIX_MAPPING).getBytes(),SerializeUtil.serializeList(mappings)); }finally { if(redis != null){ redis.close(); } } } }