package com.dl.common.utils.redis; import com.dl.common.utils.spring.SpringUtils; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.redisson.api.RMap; import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; import java.util.Set; /** * 缓存操作工具类 {@link } * * @author Michelle.Chung * @date 2022/8/13 */ @NoArgsConstructor(access = AccessLevel.PRIVATE) @SuppressWarnings(value = {"unchecked"}) public class CacheUtils { private static final CacheManager CACHE_MANAGER = SpringUtils.getBean(CacheManager.class); /** * 获取缓存组内所有的KEY * * @param cacheNames 缓存组名称 */ public static Set keys(String cacheNames) { RMap rmap = (RMap) CACHE_MANAGER.getCache(cacheNames).getNativeCache(); return rmap.keySet(); } /** * 获取缓存值 * * @param cacheNames 缓存组名称 * @param key 缓存key */ public static T get(String cacheNames, Object key) { Cache.ValueWrapper wrapper = CACHE_MANAGER.getCache(cacheNames).get(key); return wrapper != null ? (T) wrapper.get() : null; } /** * 保存缓存值 * * @param cacheNames 缓存组名称 * @param key 缓存key * @param value 缓存值 */ public static void put(String cacheNames, Object key, Object value) { CACHE_MANAGER.getCache(cacheNames).put(key, value); } /** * 删除缓存值 * * @param cacheNames 缓存组名称 * @param key 缓存key */ public static void evict(String cacheNames, Object key) { CACHE_MANAGER.getCache(cacheNames).evict(key); } /** * 清空缓存值 * * @param cacheNames 缓存组名称 */ public static void clear(String cacheNames) { CACHE_MANAGER.getCache(cacheNames).clear(); } }