YJ
2021-05-14 502c88a5376e45f46b7df2161167628ffd8f9bf6
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
package com.ks.lijin.service.manager;
 
import org.springframework.stereotype.Component;
import org.yeshi.utils.SerializeUtil;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.params.SetParams;
 
import javax.annotation.Resource;
import java.util.Set;
 
@Component
public class RedisManager {
    @Resource
    private JedisPool jedisPool;
 
    public Jedis getJedis() {
        Jedis jedis = jedisPool.getResource();
        return jedis;
    }
 
    private void setString(String key, String value, int seconds) {
        Jedis jedis = getJedis();
        try {
            jedis.setex(key, seconds, value);
        } finally {
            jedis.close();
        }
    }
 
    /**
     * 缓存字符串
     *
     * @param key
     * @param value
     */
    private void setString(String key, String value) {
        Jedis jedis = getJedis();
        try {
            jedis.set(key, value);
        } finally {
            jedis.close();
        }
 
    }
 
 
    public void remove(String... keys) {
        Jedis jedis = getJedis();
        try {
            jedis.del(keys);
        } finally {
            jedis.close();
        }
    }
 
    public void removePrefix(String... keys) {
        Jedis jedis = getJedis();
        try {
            for (String key : keys) {
                Set<String> sets = jedis.keys(key + "*");
                if (sets != null) {
                    for (String k : sets) {
                        jedis.del(k);
                    }
                }
            }
        } finally {
            jedis.close();
        }
    }
 
    private String getString(String key) {
        Jedis jedis = getJedis();
        try {
            return jedis.get(key);
        } finally {
            jedis.close();
        }
    }
 
 
    public String getCommonString(String key) {
        return getString(key);
    }
 
    public void cacheCommonString(String key, String value, int seconds) {
        setString(key, value, seconds);
    }
 
    public void cacheCommonString(String key, String value) {
        setString(key, value);
    }
 
    /**
     * 从redis缓存中查询,反序列化
     *
     * @param redisKey
     * @return
     */
    public Object getDataFromRedis(String redisKey) {
        //查询
        Jedis jedis = jedisPool.getResource();
        try {
            byte[] result = jedis.get(redisKey.getBytes());
 
            //如果查询没有为空
            if (null == result) {
                return null;
            }
 
            //查询到了,反序列化
            return SerializeUtil.unSerialize(result);
        } finally {
            jedis.close();
        }
    }
 
    /**
     * 将数据库中查询到的数据放入redis
     *
     * @param redisKey
     * @param obj
     */
    public void setDataToRedis(String redisKey, Object obj, Integer seconds) {
 
        //序列化
        byte[] bytes = SerializeUtil.serialize(obj);
 
        SetParams params = null;
        if (seconds != null) {
            params = new SetParams().nx().ex(seconds);
        }
        //存入redis
        Jedis jedis = jedisPool.getResource();
        try {
            jedis.set(redisKey.getBytes(), bytes, params);
        } finally {
            jedis.close();
        }
    }
 
 
}