添加Jedis依赖
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
新建CallwithJedis接口类
package org.hx.distribute_lock;
import redis.clients.jedis.Jedis;
public interface CallwithJedis {
void call(Jedis jedis);
}
新建Redis类
package org.hx.distribute_lock;
import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
public class Redis {
private JedisPool jedisPool;
public Redis(){
GenericObjectPoolConfig config = new GenericObjectPoolConfig();
config.setMaxIdle(300);
config.setMaxTotal(1000);
config.setMaxWaitMillis(10000);
config.setTestOnBorrow(true);
jedisPool = new JedisPool(config,"192.168.133.8",6379,10000,"hx");
}
public void execute(CallwithJedis callwithJedis){
try(Jedis jedis = jedisPool.getResource()){
callwithJedis.call(jedis);
}
}
}
新建LockTest类
package org.hx.distribute_lock;
import redis.clients.jedis.params.SetParams;
public class LockTest {
public static void main(String[] args) {
Redis redis = new Redis();
redis.execute(jedis -> {
String set = jedis.set("k1","v1",new SetParams().nx().ex(5));
if (set != null && "OK".equals(set)){
jedis.expire("k1",5);
jedis.set("name","hx");
String name = jedis.get("name");
System.out.println("name: "+name);
jedis.del("k1");
}
else {
}
});
}
}