admin
2020-12-31 74196bcc835d9b76cdd1bc3d85b0dfbe0191fc00
service-lucky/src/main/java/com/ks/lucky/manager/RedisManager.java
@@ -1,28 +1,144 @@
package com.ks.lucky.manager;
import com.ks.lib.common.util.RedisUtil;
import org.springframework.data.redis.core.RedisTemplate;
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 RedisTemplate<String, Object> redisTemplate;
    private JedisPool jedisPool;
    private RedisUtil redisUtil = null;
    public Jedis getJedis() {
        Jedis jedis = jedisPool.getResource();
        return jedis;
    }
    //注入Redis监听
    public void setRedisUtil() {
        if (redisUtil == null) {
            redisUtil = new RedisUtil(redisTemplate);
    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 void get() {
        redisUtil.get("");
    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();
        }
    }
}