ERROR信息:
案發時間: 2025-02-18 01:01
案發現場: UserServiceImpl.java
嫌疑人:
stringRedisTemplate.opsForValue().set(SystemConstants.LOGIN_CODE_PREFIX + phone, code, Duration.ofMinutes(3L)); // 3分鐘過期
作案動機:
stringRedisTemplate繼承了Redistemplate 使用的序列化器是默認的JdkRedisSerializer 所以會產生特殊字符前綴
遺體處理:
自定義RedisTemplate 將數據結構的序列化器都改為StringRedisSerializer
WebMvcConfigure.java:
/*** 自定義redisTemplate 去除jdkSerializer序列化的特殊字符* @param redisTemplate* @return*/@Beanpublic RedisTemplate redisTemplate(RedisTemplate redisTemplate, LettuceConnectionFactory lettuceConnectionFactory){StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();redisTemplate.setStringSerializer(stringRedisSerializer);redisTemplate.setValueSerializer(stringRedisSerializer);redisTemplate.setHashKeySerializer(stringRedisSerializer);redisTemplate.setHashValueSerializer(stringRedisSerializer);redisTemplate.setConnectionFactory(lettuceConnectionFactory);return redisTemplate;}
預防措施:
避免使用默認的JdkRedisSerializer序列化器 自定義RedisTemplate的序列化器
預期效果: