当前位置: 首页 > article >正文

RedisTemplate存储含有特殊字符解决

ERROR信息:
redis存储后的特殊字符
案发时间: 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
     */
    @Bean
    public 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的序列化器
预期效果:
自定义序列化器的存储


http://www.kler.cn/a/554240.html

相关文章:

  • 【Pandas】pandas Series rename
  • 51单片机学习之旅——C语言小知识
  • 在WPF中实现窗口拖拽功能:打造自定义交互体验
  • C#项目04——递归求和
  • ubuntu下安装TFTP服务器
  • vue中将当前视频播放进度转换为整数
  • 科技快讯 | DeepSeek推出NSA加速长上下文训练,xAI Grok系列将陆续开源,月之暗面发布Kimi Latest新模型
  • Mobaxterm: Local port forwarding Remote port forwarding
  • 解码 NLP:从萌芽到蓬勃的技术蜕变之旅
  • Docker 镜像加速器配置指南
  • 大量请求,数据库连接不足,会导致什么问题,最大连接数一般设置多大
  • pptx文档提取信息
  • UDP通信开发
  • 深研究:与Dify建立研究自动化应用
  • Rust编程语言入门教程(四)猜数游戏:一次猜测
  • Git环境搭建指南
  • WEB安全--SQL注入--POST传参注入、SQL头部注入
  • vue2自定义useVModel函数
  • 【MySQL】ERROR 1524 (HY000): Plugin ‘mysql_native_password‘ is not loaded 解决方法
  • Docker 部署 Dify:轻松集成 Ollama 和 DeepSeek