分布式锁
Redis有两个命令
- SETNX KEY VALUE:如果key不存在,相当于SET命令,存在就什么也不做。
java代码中:- redisTemplate.opsForValue().setIfAbsent()
- JedisCluster.setnx()
- GETSET KEY VALUE:返回KEY原来的VALUE,并设置新的值。
java中命令:- redisTemplate.opsForValue().getAndSet()
- JedisCluster.getSet()
JedisCluster或Jedis
String set(String key, String value, String nxxx, String expx, long time);
// 参数:key和value是要set到redis中的
//nxxx有两个可选值:nx (not exists)------ 只有key不存在时才set;
// xx (is exists) ------ 只有key存在时才set
//expx有两个可选值:ex:表示seconds(秒);px:表示milliseconds(毫秒)
//time:过期时间
//如果写入成功是“OK”,写入失败返回空
RedisTemplate
Boolean setIfAbsent(K var1, V var2, long var3, TimeUnit var5);
//var1:key
//var2&