为什么要用到分布式锁?
在分布式系统中,不同的系统需要使用到同一个资源的时候,需要对这个资源进行加锁,使得在某一时刻只有一个系统操作资源,以此来保证数据的一致性。
两个原子方法
setnx():不存在时设置值返回true,存在则不进行设置并返回false(对应java的setIfAbsent()方法)
getset():设置新值并返回旧值。
可以访问Redis中文网站查看具体的介绍:http://www.redis.cn/commands/setnx.html
java代码实现如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
i