遇到的问题:
redis存储数据key固定数据覆盖的问题
问题描述:
步骤:
1.前端调用获取芝麻信用分接口
2.在获取芝麻信用分接口中调用支付宝接口,获取芝麻信用分
3.支付宝在异步回调中推给我们芝麻信用分
4.根据芝麻信用分去更新入库
出现问题:
1.调用获取芝麻信用分接口,这个时候要用redis保存nailUserId,以及nailCropId,在回调里面去去做更新!但如果这样的话,redis的key就要存储一个定值,但是这样做的话,一旦有多个用户同时获取就会出现redis中的值被覆盖这一种情况!
解决思路1:
jedis.set("nailUserId",System.currentmillies);jedis.set(jedis.get("nailUserId"),nailUserId);
但是这样还是不能解决这个问题,因为本质上第一个jedis.set("nailUserId",System.currentmillies)----还是会被覆盖
解决思路2:
使用cookie做为存储,但是cookie在回调的时候是失效的,因为不是前端接口调我们,所以信息带不过来
解决思路3:
在异步回调的时候把获取的score,把score通过路径返回给前端,前端获取之后,调用(额外写的更新芝麻信用分接口)更新芝麻信用分
httpServletResponse.sendRedirect(successPath + "&score=" + response.getZmScore());