工具類:
package com.ljxx.service.common; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.*; import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.data.redis.support.atomic.RedisAtomicLong; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.Serializable; import java.util.Date; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; @Service public class RedisService { @Autowired private RedisTemplate redisTemplate; @Autowired private StringRedisTemplate stringRedisTemplate; @Value("${system.redisPre}") private String redisPre; /** * string類型 */ //刪除key public void deleteKey(String key) { stringRedisTemplate.delete(redisPre + key); } //判斷key存在 public boolean keyIsExists(String key) { return stringRedisTemplate.hasKey(redisPre + key); } //設置key失效時間,以秒為單位 public void setKeyTimeOut(String key, long second) { stringRedisTemplate.expire(redisPre + key, second, TimeUnit.SECONDS); } //設置值 public void setValue(String key, String val) { stringRedisTemplate.boundValueOps(redisPre + key).set(val); } //獲取值 public String getValue(String key) { return stringRedisTemplate.boundValueOps(redisPre + key).get(); } /** * object類型 */ //存入對象 public void setObject(String key, Object obj) { getRedisTemplate().boundValueOps(redisPre + key).set(obj); } //獲取對象 public Object getObject(String key) { return getRedisTemplate().boundValueOps(redisPre + key).get(); } //刪除對象 public void delObject(String key) { getRedisTemplate().delete(redisPre + key); } //設置對象過期時間 public void setObjectTimeOut(String key, long second) { getRedisTemplate().expire(redisPre + key, second, TimeUnit.SECONDS); } //判斷對象是否存在 public boolean objectIsExists(String key) { return getRedisTemplate().hasKey(redisPre + key); } //獲取RedisTemplate,把key進行string序列化,那么在庫中就顯示的原始的key值,否則就是16進制的值不方便。 private RedisTemplate getRedisTemplate() { //設置key是string類型的序列 redisTemplate.setKeySerializer(new StringRedisSerializer()); //設置hashKey是string類型的序列 redisTemplate.setHashKeySerializer(new StringRedisSerializer()); return redisTemplate; } }
使用工具類:注入
@Autowired private RedisService redisUtil;
調用工具類的方法:
if (!redisUtil.objectIsExists(token)) { return Result.error("token已經失效!"); }
User user = (User) redisUtil.getObject(token);