package com.cinc.ecmp.utils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.io.Serializable; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; /** * @Author: * @Despriction: 缓存类 * @CreatedTime: 2019/6/5 11:06 * @ModifyBy: * @ModifyTime: * @ModifyDespriction: * @Version: V1.0.0 */ @Component public class RedisUtil { @Autowired private StringRedisTemplate redisTemplate; @Autowired private RedisTemplate<String, Serializable> redisObjectTemplate; private static final String CAPTCHA_KEY="shuttle:capthcha"; private static final String PREFIX="zhugy:"; private String inboxKey(String key) { return PREFIX + key; } public void set(String key, Object object) { String json = JsonUtil.objectToJsonStr(object); redisTemplate.boundValueOps(inboxKey(key)).set(json); } public void set(String key, Object object, long timeout, TimeUnit timeUnit) { String json = JsonUtil.objectToJsonStr(object); redisTemplate.boundValueOps(inboxKey(key)).set(json, timeout, timeUnit); } public void delete(String key) { redisTemplate.delete(inboxKey(key)); } public void deleteKeys(String keyPattern) { Set<String> keys = redisTemplate.keys(keyPattern); redisTemplate.delete(keys); } public <T> T get(String key, Class<T> clazz) { if (redisTemplate.hasKey(inboxKey(key))) { String value = redisTemplate.boundValueOps(inboxKey(key)).get(); return JsonUtil.jsonStrToOject(value, clazz); } else { return null; } } public <T> List<T> getList(String key, Class<T> clazz) { if (redisTemplate.hasKey(inboxKey(key))) { String value = redisTemplate.boundValueOps(inboxKey(key)).get(); return JsonUtil.jsonToList(value, clazz); } else { return null; } } public void setCaptcha(String key, Serializable object, long timeout, TimeUnit timeUnit) { redisObjectTemplate.opsForHash().put(CAPTCHA_KEY, key, object); // redisObjectTemplate.opsForHash().put(key, object, timeout, timeUnit); } public Object getCaptcha(String key) { return redisObjectTemplate.opsForHash().get(CAPTCHA_KEY,key); } public boolean hasKey(String key) { return redisObjectTemplate.opsForHash().hasKey(CAPTCHA_KEY,key); } public void deleteKey(String key) { redisObjectTemplate.opsForHash().delete(CAPTCHA_KEY,key); } public Set<Object> getKeys() { return redisObjectTemplate.opsForHash().keys(CAPTCHA_KEY); } public int getSize() { return Math.toIntExact(redisObjectTemplate.opsForHash().size(CAPTCHA_KEY)); } }