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

来源:9-9 登录成功处理并集成vuex-1

Tendernesz

2021-05-16

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回答

慕后端4279712

2021-05-16

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

//img.mukewang.com/szimg/60a0d19d09a4fac312600622.jpg

2
3
慕瓜6489841
谢谢!
2022-11-16
共3条回复

Spring Boot+Vue3前后端分离,实战wiki知识库系统

一课掌握前后端最火框架,更有职场竞争力

2584 学习 · 1682 问题

查看课程