aijinhui
2023-11-02 b06ac186d84a7cb758314004d1e7328671b3db55
ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
@@ -1,10 +1,6 @@
package com.ruoyi.common.core.redis;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
@@ -142,6 +138,15 @@
        return redisTemplate.opsForList().range(key, 0, -1);
    }
    public <T> void setCacheList(String key, T data, final Integer timeout, final TimeUnit timeUnit) {
        // 将数据插入list
        redisTemplate.opsForList().leftPush(key, data);
        // 设置过期时间
        if (timeout > 0) {
            redisTemplate.expire(key,timeout, timeUnit);
        }
    }
    /**
     * 缓存Set
     *
@@ -157,7 +162,23 @@
        }
        return setOperation;
    }
    /**
     * 缓存Set
     *
     * @param key     缓存键值
     * @param data    缓存的值
     * @param timeout  时间
     * @param timeUnit 时间颗粒度
     * @return 缓存数据的对象
     */
    public <T> void setCacheSet(String key, T data, final Integer timeout, final TimeUnit timeUnit) {
        BoundSetOperations<String, String> setOperations = redisTemplate.boundSetOps(key);
        setOperations.add(data.toString());
        // 设置过期时间
        if (timeout > 0) {
            setOperations.expire(timeout, timeUnit);
        }
    }
    /**
     * 获得缓存的set
     *
@@ -249,8 +270,22 @@
     * 根据前缀获取所有的key* 例如:pro_
     */
    public List<Object> getListKey(String prefix) {
        Set<Object> keys = redisTemplate.keys(prefix+"*");
        Set<Object> keys = redisTemplate.keys(prefix + "*");
        List<Object> values = redisTemplate.opsForValue().multiGet(keys);
        return values;
    }
    /**
     * 根据前缀获取所有的key* 例如:pro_
     */
    public HashMap<String, Object> getMapKey(String prefix) {
        HashMap<String, Object> map = new HashMap<>();
        Set<String> keys = redisTemplate.keys(prefix + "*");
        for (String key : keys) {
            Object value = redisTemplate.opsForValue().get(key);
            String nKey = key.replace(prefix, "");
            map.put(nKey, value);
        }
        return map;
    }
}