并发执行某种操作时,可能会导致数据异常,多次执行,通过加锁来保证数据准确。以下是一种加锁方式,通过redis方式。
if(!redisCache.setIfAbsentWithTimeOut("key", "val", 10, TimeUnit.MINUTES)){
return;
}
/**
* 如果不存在则设置值value,返回true。 否则返回false
*
* @param key
* @param value
* @return
*/
public boolean setIfAbsentWithTimeOut(final String key, final String value,final long timeout,final TimeUnit timeUnit) {
try {
return redisTemplate.opsForValue().setIfAbsent(key, value,timeout,timeUnit);
} catch (Exception e) {
return false;
}
}