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类型