不多说了,直接撸代码,原代码:
当redis遇到并发问题时会发现下面的TODO执行了多次,原来redis.existsKey会存在并发的问题,于是采用了redis.sentx(key,value)来解决这个问题,sentx命令为原子性的不会存在并发操作修改后代码:if (!redisService.existKey(key)) { redisService.putRedisValue(key, "1"); //TODO 不存在该key值的操作 }
if (!redisService.existKey(key)) { // redisService.putRedisValue(key, "1"); //设置1分钟消失防止1分钟内有重复数据 boolean flag =redisService.setnxKeyWithTime(key,"1",60); if (flag) { //TODO 不存在该key值的操作 } }