我们在高并发使用redis时,我们不止需要采用分布式事务的模式,还需要采用乐观锁保证数据安全。
redis乐观锁的实现一定要伴随着redis事务。
话不多说直接上代码
redisTemplate.watch("key"); // 1
redisTemplate.multi();
redisTemplate.boundValueOps("key").set(""+id);
List<Object> list= redisTemplate.exec();
System.out.println(list);
if(list != null ){
//操作成功
System.out.println(id+"操作成功");
}else{
//操作失败
System.out.println(id+"操作失败");
}
注意: 使用spring整合redis需要开始事务配置
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<!--<!–开启事务支持–>-->
<property name="enableTransactionSupport" value="true"/>
....
</bean>