package com.monkeylessey.framework.utils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.util.List; import java.util.concurrent.TimeUnit; /** * @author 29443 * @date 2022/4/16 */ @Component public class RedisUtil { @Autowired private RedisTemplate redisTemplate; /** * 保存hash类型 * * @param key * @param hashKey * @param value */ public void saveForHash(String key, Object hashKey, Object value) { redisTemplate.opsForHash().put(key, hashKey, value); } /** * 保存普通value类型 * * @param key * @param value */ public void saveForValue(String key, Object value) { redisTemplate.opsForValue().set(key, value); } /** * 保存普通value类型,并设置过期时间 * * @param key * @param value * @param time * @param unit */ public void saveForValueWithExpire(String key, Object value, Long time, TimeUnit unit) { redisTemplate.opsForValue().set(key, value, time, unit); } /** * 保存list * * @param key * @param list * @param * @return */ public Long saveForList(String key, List list) { Long num = redisTemplate.opsForList().rightPushAll(key, list); return num == null ? 0 : num; } /** * 设置过期时间 * * @param key * @param time * @param timeUnit * @return */ public boolean setExpire(String key, Long time, TimeUnit timeUnit) { return redisTemplate.expire(key, time, timeUnit); } /** * 返回过期时间 * * @param key * @return */ public long getExpire(String key) { return redisTemplate.getExpire(key); } /** * 获取hashkey的值 * * @param key * @param hashKey * @param type * @param * @return */ public T getHashValue(String key, String hashKey, Class type) { try { T value = (T) redisTemplate.opsForHash().get(key, hashKey); return value; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 获取普通的value * * @param key * @param 如果存入类型为复杂的泛型,比如List,Array 传参时需要传new TypeReference>(){}.getType(); * @return */ public T getValue(String key, Class result) { try { return (T) redisTemplate.opsForValue().get(key); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 获取list的值 * * @param key * @param * @return */ public List getList(String key) { return redisTemplate.opsForList().range(key, 0, -1); } /** * 查询redis中是否有某个key * * @param key * @return */ public boolean hasKey(String key) { return redisTemplate.hasKey(key); } /** * 查询redis中hash类型中是否有某个key * * @param key * @param hashKey * @return */ public boolean hasHashKey(String key, Object hashKey) { return redisTemplate.opsForHash().hasKey(key, hashKey); } /** * 刪除key * * @param key * @return */ public boolean deleteKey(String key) { return redisTemplate.delete(key); } }