This is a simple distributed tools based on Redis.
Mail: [email protected]
- High performance.
- No deadlock.
- Support Redis cluster, single.
- Non-blocking lock.
- blocking lock.
maven dependency:
<dependency>
<groupId>top.crossoverjie.opensource</groupId>
<artifactId>distributed-redis-tool</artifactId>
<version>1.0.2</version>
</dependency>
configure bean:
@Configuration
public class RedisLockConfig {
@Bean
public RedisLock build(){
RedisLock redisLock = new RedisLock() ;
HostAndPort hostAndPort = new HostAndPort("127.0.0.1",7000) ;
JedisCluster jedisCluster = new JedisCluster(hostAndPort) ;
redisLock.setJedisCluster(jedisCluster) ;
return redisLock ;
}
}
Non-blocking lock like this:
@Autowired
private RedisLock redisLock ;
public void use() {
String key = "key";
String request = UUID.randomUUID().toString();
try {
boolean locktest = redisLock.tryLock(key, request);
if (!locktest) {
System.out.println("locked error");
return;
}
//do something
} finally {
redisLock.unlock(key,request) ;
}
}
Other apis:
//blocking lock
redisLock.lock(String key, String request);
//blocking lock, costom block time
redisLock.lock(String key, String request,int blockTime);