package nju.seec.helper.util.cache; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** * use redis * * @author cst */ @Component public class RedisCacheUtils { private final RedisTemplate redisTemplate; public RedisCacheUtils(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } public void set(String cacheName, String key, String value, long expireTime, TimeUnit timeUnit) { redisTemplate.opsForValue().set(combineKey(cacheName, key), value, expireTime, timeUnit); } public String get(String cacheName, String key) { return redisTemplate.opsForValue().get(combineKey(cacheName, key)); } public List multiGet(String cacheName, List keys) { List body = keys.stream().map(key -> combineKey(cacheName, key)).collect(Collectors.toList()); return redisTemplate.opsForValue().multiGet(body); } public void remove(String cacheName, String key) { redisTemplate.delete(cacheName + ":" + key); } private String combineKey(String cacheName, String key) { return cacheName + ":" + key; } }