首先进行webmvcconfig的配置:
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringRedisSerializer);
redisTemplate.setHashKeySerializer(stringRedisSerializer);
GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);
redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);
return redisTemplate;
}
}
起到工具类的效果进行调用
这里展示的用法是生成token并且键值对形式保存到redis中被调用,第二种是和验证码键值对保存到redis中当然基本的增删改查定义可以被调用。
@Component
public class TokenUtils {
private static RedisTemplate redisTemplate;
public static RedisTemplate getRedisTemplate() {
return redisTemplate;
}
@Resource
public void setRedisTemplate(RedisTemplate bean) {
TokenUtils.redisTemplate = bean;
}
/**
* 用户登录时,登录成功则创建token,调用此方法,将token放入redis中。有效时间为 7天
*
* @param token 生成的token
* @param userId 生成token后,该token对应的用户id
* @return java.lang.String
* @date 2020/3/7 21:22
* @author XuQ
*/
public static String createToken(String token, String userId) {
ValueOperations valueOperations = redisTemplate.opsForValue();
valueOperations.set(token, userId, 7, TimeUnit.DAYS);
return token;
}
/**
* 是否还有效,返回真表示有效
*
* @param token 生成的token
* @return boolean 真为有效,假为无效
* @date 2020/3/7 19:55
* @author XuQ
*/
public static boolean isTokenValid(String token) {
return redisTemplate.hasKey(token);
}
public static boolean deleteToken(String token) {
return redisTemplate.delete(token);
}
public static String getUserIdByToken(String token) {
return (String) redisTemplate.opsForValue().get(token);
}
public static void setVerificationCode(String mobile, String verificationCode) {
redisTemplate.opsForValue().set(mobile, verificationCode, 60, TimeUnit.MINUTES);
}
public static String getVerificationCodeByMobile(String mobile) { return (String) redisTemplate.opsForValue().get(mobile);
}
public static boolean deleteVerificationCodeByMobile(String mobile) { return redisTemplate.delete(mobile); }
}
下一篇继续进行redis的用法以及redisClient在框架中的应用。