请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

RedisTemplate存入redis产生\xac\xed\x00\x05t\x00的问题

9-9,RedisTemplate有一个问题,存入redis后会在每个key前面加一个\xac\xed\x00\x05t\x00,value也是会显示成utf-8码,后来查了资料,改成了StringRedisTemplate,用可视化工具看,并且存储值都没问题,方便管理。
图片描述

    @Resource
    private StringRedisTemplate stringRedisTemplate;
...
...
  @PostMapping(value = "/login")
    public CommonResp<UserLoginResp> login(@Valid @RequestBody UserLoginReq req) {
        //使用md5对密码进行加密,然后再存储
        req.setPassword(DigestUtils.md5DigestAsHex(req.getPassword().getBytes()));
        CommonResp<UserLoginResp> resp = new CommonResp<>();
        UserLoginResp userLoginResp = userService.login(req);

        Long token = snowFlake.nextId();
        LOG.info("生成token:{},并放入redis中,时效为3600*24秒",token);
        userLoginResp.setToken(token.toString());
        stringRedisTemplate.opsForValue().set(token.toString(),JSONObject.toJSONString(userLoginResp),3600*24, TimeUnit.SECONDS);

        resp.setContent(userLoginResp);
        return resp;
    }

只是key似乎只能用String,不然后端会报错,所以需要toString方法转一下token类型

正在回答

1回答

RedisTemplate序列化的问题,默认的keySerializer是JdkSerializationRedisSerializer,改成StringRedisSerializer就好了。

https://img1.sycdn.imooc.com//szimg/60a0d19d09a4fac312600622.jpg

2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号