download:
云原生利用架构设计与开发实战
复制下哉课程 ZY
:https://www.97yrbl.com/t-1389.html
@Component
public class RedisUtil {
public static RedisUtil util;
public RedisUtil(@Autowired JedisPool jedisPool) {
this.jedisPool = jedisPool;
RedisUtil.util = this;
}
public static RedisUtil getInstance(){return util;}
@Autowired
private JedisPool jedisPool;
/**
* 向 Redis 中存值,永恒无效
*/
public String set(String key, String value) {
Jedis jedis = null;
try {jedis = jedisPool.getResource();
return jedis.set(key, value);
} catch (Exception e) {return "0";} finally {jedis.close();
}
}
/**
* 依据传入 Key 获取指定 Value
*/
public String get(String key) {
Jedis jedis = null;
String value;
try {jedis = jedisPool.getResource();
value = jedis.get(key);
} catch (Exception e) {return "0";} finally {jedis.close();
}
return value;
}
/**
* 校验 Key 值是否存在
*/
public Boolean exists(String key) {
Jedis jedis = null;
try {jedis = jedisPool.getResource();
return jedis.exists(key);
} catch (Exception e) {return false;} finally {jedis.close();
}
}
/**
* 删除指定 Key-Value
*/
public Long del(String key) {
Jedis jedis = null;
try {jedis = jedisPool.getResource();
return jedis.del(key);
} catch (Exception e) {return 0L;} finally {jedis.close();
}
}
/**
* 分布式锁
* @param key
* @param value
* @param time 锁的超时工夫,单位:秒
*
* @return 获取锁胜利返回 "OK",失败返回 null
*/
public String getDistributedLock(String key,String value,int time){
Jedis jedis = null;
String ret = "";
try {jedis = jedisPool.getResource();
ret = jedis.set(key, value, new SetParams().nx().ex(time));
return ret;
} catch (Exception e) {return null;} finally {jedis.close();
}
}
public void pub(){jedisPool.getResource().publish("test","msg");
}
}