java110
2021-03-22 3a63bde28d2802c818adef25e47b8c98f3ab4b6c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
package com.java110.utils.cache;
 
import com.java110.entity.mapping.Mapping;
import com.java110.utils.constant.DomainContant;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.SerializeUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import redis.clients.jedis.Jedis;
 
import java.util.List;
 
/**
 * 映射缓存工具类
 * Created by wuxw on 2018/4/14.
 */
public class MappingCache extends BaseCache {
 
    private final static Logger logger = LoggerFactory.getLogger(MappingCache.class);
 
 
    //后缀 用来刷缓存时删除 所有以这个为后缀的数据
    public final static String _SUFFIX_MAPPING = "_SUFFIX_MAPPING";
    //日志
    public final static String LOG_SERVICE_CODE = "LOG_SERVICE_CODE";
 
 
    /**
     * 获取值
     *
     * @param domain
     * @param key
     * @return
     */
    public static String getValue(String domain, String key) {
        Jedis redis = null;
        long startTime = DateUtil.getCurrentDate().getTime();
        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();
            }
 
            logger.debug(domain + "::" + key + " redis 耗时:" + (DateUtil.getCurrentDate().getTime() - startTime));
        }
    }
 
    /**
     * 获取公用域下的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;
        long startTime = DateUtil.getCurrentDate().getTime();
 
        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();
            }
            logger.debug( key + " redis 耗时:" + (DateUtil.getCurrentDate().getTime() - startTime));
 
        }
        return null;
    }
 
    /**
     * 获取 域下的所有数据
     *
     * @param domain
     * @return
     */
    public static List<Mapping> 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<Mapping> 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();
            }
        }
    }
 
    /**
     * 获取值
     *
     * @param domain
     * @param key
     * @return
     */
    public static String getRemark(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.getRemark();
        } finally {
            if (redis != null) {
                redis.close();
            }
        }
    }
 
 
}